请编写函数countValue(),其功能是;计算500~800之间素数的个数Count,并按所求素数的值从小到大排序,再计算其间隔加、减之和,即第1个素数~第2个素数+第3个素数一第4个素数+第5个素数……的值sum。函数WriteData()负责把结果

admin2011-06-14  6

问题 请编写函数countValue(),其功能是;计算500~800之间素数的个数Count,并按所求素数的值从小到大排序,再计算其间隔加、减之和,即第1个素数~第2个素数+第3个素数一第4个素数+第5个素数……的值sum。函数WriteData()负责把结果输出到OUT.DAT文件中。
注意;部分源程序已给出。
请勿改动主函数main()和写函数WriteData()的内容。
试题程序;
#include
int count,sum;
void WriteData();
void countValue()
{
}
void main()
{
  count=sum=0;
  countValue();
  printf("count=%d\n,sum=%d\n",
  count,sum);
  WriteData();
}
  void WriteData()
  {
    FILE*fp;
    fp=fopen("OUT.DAT","w");
    fprintf(fp,"%d\n%d\n",count,sum);
    fclose(fp);
    }

选项

答案  void countValue() { int i,j,flag,temp; int outBuf[300]; for(i=500;i<800;i++) { flag=0; for(j=2;joutBuf[j]) /*如果第i位比它后面的数大则将两者进行交换,也即将更小的值放到第i位*/ { temp=outBuf[i]; outBuf[i]=outBuf[j]; outBuf[j]=temp; } for(i=0;i
解析 本题主要考查素数的判断、排序和数组中指定下标元素的求和问题。1.判断是否为素数;素数的定义是;若一个数除了其自身和1再没有其他的除数,则该数就是素数。故用其定义可以很容易判断。在2到所判断数之间的数进行扫描,若有一个除数,则该数就不是素数。2.排序;排序的思想是(以从小到大为例);将当前数据与其后的各个数据相比较,如果当前的数据比其后的数据大.则将两数据进行交换,从而使得前面的数据小于后面的数据,达到从小到大排序的目的。3.计算其间隔加、减之和;判断下一位数的标号是奇数还是偶数,若下标为偶数(即第奇数个)则加,否则则减。
转载请注明原文地址:https://kaotiyun.com/show/7uaZ777K
0

最新回复(0)