实验名称计算1000个以内的10个最大素数之和
实验目的
1. 熟悉if,if ... else,if ... else if语句和witch语句的格式和用法,掌握if语句中的嵌套关系和匹配原理,并使用if语句和switch语句实现分支选择结构.
2. 熟悉while语句的格式和用法,执行... while语句和for语句,掌握三个循环控制语句的循环过程和循环结构的嵌套,并使用循环语句实现循环结构.
3. 掌握简单常用的算法,并在编程过程中体验各种算法的编程技巧. 进一步研究调试器,掌握语法错误和逻辑错误的检查方法.
实验内容
计算并输出1000个以内的10个最大素数.
要求:
在程序内添加必要的注释.
因为偶数不是质数,所以偶数可以忽略.
尽管1000个素数中有10个以上的素数,但有必要处理1000个素数中少于10个的素数.
输出格式为: 质数1 +质数2 +质数3 + ... +质数10 =总值.
算法描述流程图
主要功能:
判断素数:
源程序
#include
#include
int sushu(int n)/ *用于确定素数的函数* /
{
int t,i;
t = sqrt(n);
for(i = 2; i <= t; i ++)
if(n%i == 0)/ *如果不是素数,则返回0 * /
返回0;
返回n; / *如果是质数,请返回数字* /
}
void main
{
int i,j = 0,n,m = 0,a [1000],x;
/ * clrscr; * /
printf(“请输入1到1000之间的数字: ”);
scanf(“%d”,&x);
如果(x == 2)/ *当x = 2时处理* /
printf(“%dn”,x);
否则,如果(x <= 1)/ *如果x超出1到1000的范围,该怎么办* /
printf(“错误!n”);
其他
{
如果(x%2 == 0)/ *当x为偶数时,将x更改为奇数* /
x-;
for(i = x; i> 1; i- = 2)/ *当x为奇数时,进行函数计算* /
{
n = sushu(i); / *确定素数的函数调用* /
如果(n!= 0)/ *处理质数* /
{
a [j] = n; / *将素数从大到小存储在数组[]中* /
j ++;
如果(j <11)
m + = n; / *计算前10个质数的总和* /
}
}
如果(j <10)/ *当质数小于10时,输出结果* /
{
对于(i = 0; i
{
n = a [i];
printf(“%d”,n);
printf(“ +”);
}
printf(“ 2 =”);
printf(“%dn”,m + 2);
}
否则(i = 0; i <10; i ++)/ *当素数为10或更多时,输出结果* /
{
n = a [i];
printf(“%d”,n);
如果(i <9)
printf(“ +”);
其他
{
printf(“ =”);
printf(“%dn”,m);
}
}
}
}
测试数据
分别输入1000、100和10个测试.
运行结果
问题和解决方案
当质数的数目小于10时,处理效果不理想
程序太大,不够精简,无用的文字太多了.
学习耐心和不足,例如scanf中的“&”(“%d”,&n);经常被遗忘.
编程思想分歧不够大. 例如,如何判断素数,您只能想到两种方式(其中一种是基于教科书的). 在将来的学习中c语言程序设计范例,您应该多动脑筋,并充分利用所学到的知识.
基本技能还不够. 诸如清晰屏幕clrscr之类的功能无法很好地使用. 有时,相同的问题会重复多次,给实验老师带来很多麻烦. 这表明我的知识还不够广. 有很多有用的书,但不是考试所必需的. 即使C语言课程结束后,您也应该在计算机上查看相关内容并进行练习,以真正改善自己.
物理实验报告·化学实验报告·生物实验报告·实验报告格式·实验报告模板
知识还不够广泛,例如vc + +6.0,尝试了一段时间后我将不再使用它;这说明我的计算机水平还不够,自学能力还不够. 学到的知识还不够好.
实验经验
通过这个C语言实验室实验,我认为这是在人类与非人类之间.
计算机编程语言具有一定的经验. 同时,我感到高兴,沮丧,无助和尴尬……随着实验的成功和实验报告的完成,令人感到有些自豪. 感谢高垦宁的高标准和严格要求,感谢实验班的年轻老师们的耐心和指导,也感谢您在实验中所学到的一点...随着研究的深入,我发现还有很多更深刻的事情,等着我发掘自己. 对于C语言,我会更加努力.
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-159535-1.html