今年三级上机题,大家帮我看一下,
第一楼我写题目,第二楼我写我的解法。
要求写一个函数,
1:计算500到800之间的素数的个数;
2;对这些素数进行从大到小的排序;
3:间隙加减求最后的结果(如:80,40,60,70 应这么算:80-40+60-70)
其中有两个全局变量;cnt(素数的个数)sum(最后加减后的结果)
自认这程序不是太难,可是编好后,总是出问题还把模拟上机的机子搞死机了。
明天就要真正上机考试了。大家帮我看一下我出的问题:
#include "stdio.h" int cnt=0;int sum=0;
void voj() {int i,j,k,m=1; int xx[300]; for(i=500;i<800;i++) for(j=2;j<i;j++) if(i%j!=0) {xx[cnt]=i; cnt++;} for(i=0;i<cnt-1;i++) for(j=i+1;j<cnt;j++) if(xx[i]<xx[j]) {k=xx[i]; xx[i]=xx[j]; xx[j]=k; } for(i=0;i<cnt;i++) {m=m*(-1); sum=sum+xx[i]*m; } } main() { voj(); printf("500到800之间的素数的个数为:%d",cnt); printf("这些数的间隙加减的和为:%d",sum); getch(); }