实验名称 计算出 1000 以内 10 个最大素数之和实验目的 1、熟练掌握 if、if…else、if…else if 语句和 witch 语句格式及使用方法,掌握 if 语句中的嵌套关系和匹配原则,利用 if 语句和 switch 语句实现分支选择结构。 2、熟练掌握 while 语句、do…while 语句和 for 语句格式及使用方法,掌握三种循环控制语句的循环过程以及循环结构的嵌套,利用循环语句实现循环结构。 3、掌握简单、常用的算法,并在编程过程中体验各种算法的编程技巧。进一步学习调试程序,掌握语法错误和逻辑错误的检查方法。实验内容 计算并输出 1000 以内最大的 10 个素数以及它们的和。要求:在程序内部加必要的注释。由于偶数不是素数,可以不考虑对偶数的处理。虽然在 1000 以内的素数超过 10 个,但是要对 1000 以内不够 10 个素数的情况进行处理。输出形式为:素数 1+素数 2+素数 3…+ +素数 10=总和值。算法描述流程图 Main 函数: 推断素数:源程序#include#includeint sushu(int n)/* 推断素数的函数 */{int t,i;t=sqrt(n);for(i=2;i<=t;i++) if(n%i==0)/* 假如不是素数,返回 0 */ return 0;return n;/* 假如是素数,返回该数 */}void main(){int i,j=0,n,m=0,a[1000],x;/*clrscr();*/printf("Please input a number form 1 to 1000:");scanf("%d",&x);if(x==2)/* x=2 时的处理 */printf("%dn",x);else if(x<=1) /* x 在 1~1000 范围外时的处理 */printf("Error!n");else{if(x%2==0)/* x 为偶数时,把 x 变为奇数 */ x--;for(i=x;i>1;i-=2)/* x 为奇数时,做函数计算 */ { n=sushu(i); /* 做推断素数的函数调用 */ if(n!=0)/* 对素数的处理 */ { a[j]=n;/* 把素数由大至小存入数组 a[ ] 中 */ j++; if(j<11) m+=n; /* 统计前 10 个素数之和 */ } }if(j<10)/* 当素数个数小于 10 个时,结果输出 */ { for(i=0;i { n=a[i]; printf("%d",n); printf("+"); } printf("2="); printf("%dn",m+2); }else for(i=0;i<10;i++)/* 当素数个数大于等于 10 个时,结果输出 */ { n=a[i]; printf("%d",n); if(i<9) printf("+"); else { printf("="); printf("%dn",m); } }}}测试数据 分别输入 1000、100、10 测试。运行结果出现问题及解决方法当素数个数小于 10“时的处理不够完善,考虑不够周全。把 +2”的处理做...