admin管理员组

文章数量:1594231

2024年3月26日发(作者:)

C语言程序设计实验报告

实验名称

学院

姓名

任课教师

输出1000以内10个最大素数之和

专业班级

学号

实验时间

1 实验目的:

1、熟练掌握if、if…else、if…else if语句和witch语句格式及使用方法,掌握

if语句中的嵌套关系和匹配原则,利用if语句和switch语句实现分支选择结构。

2、熟练掌握while语句、do…while语句和for语句格式及使用方法,掌握

三种循环控制语句的循环过程以及循环结构的嵌套,利用循环语句实现循环结

构。

3、掌握简单、常用的算法,并在编程过程中体验各种算法的编程技巧。进

一步学习调试程序,掌握语法错误和逻辑错误的检查方法。

2 实验内容:

输出1000以内最大的10个素数以及它们的和。

要求

由于偶数不是素数,可以不对偶数进行处理;

输出形式为:素数1+素数2+素数3+…+素数10=总和值。

3 算法描述流程图

输入a

变量声明n,sum=0

开始

A=2 ?

输出a

A=素数

a>2?

A=a-2

以+a形式输出a

a是素数

A>2&&n<=9

赋初值n=1

Sum+=a,A=a-2

输出a

A--

Sum=sum+a,n++

n<9=?

Sum+=2

输出:sum+2

输出sum值

4 源程序

#include

#include

int sushu(int a) /*判断素数的函数*/

{

}

main()

{

int a,n,sum;sum=0;

printf("ninput a number:"); /*在此输入1000*/

scanf("%d",&a);

if(a==2) /*a=2时的处理*/

{

while(sushu(a)==0&&a>2) /*当a为偶数时,把a变为奇数处理*/

a--;

printf("%d",a);

sum=sum+a;

{

if(sushu(a)==1)

{

};

a=a-2;

sum=sum+a;

printf("+%d",a); /*把素数由大到小累加输出*/

n++;

a=a-2;

for(n=1;a>2&&n<=9;) /*a为奇数时,做函数计算*/

printf("%d=%d",a,a);

if(a>2)

int i,k;

k=sqrt(a);

for(i=2;i<=k;i++)

if(a%i==0) /*如果不是素数返回0*/

return 0;

return 1; /*如果是素数返回1*/

};

}

}

if(n<=9)

{

}

if(n>=10)

printf("=%dn",sum); /*当输出素数个数等于10时,结果输出*/

sum=sum+2;

printf("+2=%d",sum); /*统计前10个素数之和*/

5 测试数据

分别输入1000、100、10测试。

6 运行结果

当测试数据为1000时

当测试数据为100时

当测试数据为10时

7 出现问题及解决方法

当素数个数小于10时的处理不够完善,考虑不够周全。把“+2”的处理做的太

勉强。

程序过大,不够精简,无用文字太多。

学习耐心与细心不足,如scanf(“%d”,&n);中的“&”经常忘记。

编程思想不够发散,例如如何判断素数,只能想出2种方式(其中1种为参考

教科书上内容);在今后学习中应更多的动脑,综合运用所学。

基本功不够,有时同样的问题多次犯,给实验 ·实验报告格式 ·实验报告模板

知识不够广泛,如VC++6.0等程序,自己试了好一阵也不会用;说明我电脑水

平还是不够,自学能力不够。已会的东西掌握的还是不够好。

8 实验心得

通过本次实验,我对这个介于人类与非人类之间的计算机编程语言有了一定的

体验。伴随着学习的深入,我发现高深的东西还有很多很多,等待着我自己去挖

掘。对C语言,我会更加努力。同时,我对分支(if,if``else,if```else if```)

和循环结构(for,while,do```while)的几种用法更加熟练,并掌握了函数的定

义与调用,参数说明以及返回值使用。并对C程序设计有了总体的认识。

本文标签: 素数不够语句实验循环