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程序设计有了总体的认识。
版权声明:本文标题:1000以内的10个最大素数之和 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/xitong/1711439785a309829.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论