第一楼我写题目,第二楼我写我的解法。
要求写一个函数,
1:计算500到800之间的素数的个数;
2;对这些素数进行从大到小的排序;
3:间隙加减求最后的结果(如:80,40,60,70 应这么算:80-40+60-70)
其中有两个全局变量;cnt(素数的个数)sum(最后加减后的结果)
第一楼我写题目,第二楼我写我的解法。
要求写一个函数,
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(); }
哇~~~~先谢了。
可是我题目要求只编写函数VOJ,
其它的主函数等等都是给出来的不能改。
谢了jober
通过了, 嘻嘻,希望明天好运,再次抽中这个题目哈哈,
嘻嘻,
楼上的兄弟果然高手,
听君一席话,免我十本书。
正在努力中。