当前所在位置:珠峰网资料 >> 计算机 >> 计算机等级考试 >> 正文
2015计算机等级考试三级数据库技术上机模拟题(七)
发布时间:2010/9/8 14:38:00 来源:www.xue.net 编辑:城市总裁吧

  计算500-800区间内素数的个数cnt,并按所求素数的值从大到小的顺序,再计算其间隔减、加之和,即第1个素数-第2个素数+第三个素数-第4个素数+第5个素数。。。的值sum。请编写函数countvalue()实现程序的要求;最后main()函数调用函数writeDAT()把结果cnt和sum,输出到文件OUT11.DAT中。

  注意:部分源程序存放在prog1.c中请勿改动主函数main()和输出数据函数writeDAT()的内容。

  #include

  int cnt,sum;

  void countvalue()

  {

  }

  void main()

  {cnt=sum=0;

  countvalue();

  printf("素数的个数=%d\n",cnt);

  printf("按要求计算的值=%d\n",sum);

  writeDAT();}

  writeDAT()

  {FILE *fp;

  fp=fopen("OUT11.DAT","w");

  fprintf(fp,"%d\n%d\n",cnt,sum);

  fclose(fp);

  }

  --------------------------------------------------------------------------------------

  这是答案:

  void countvalue()

  {

  int i,j,k,l;

  k=0;

  l=1;

  for (i=800;i>=500;i--)

  {

  for (j=2;j<=i/2;j++)

  {

  if ((i%j)==0)

  {

  k=1;

  break;

  }

  }

  if ((k==0)&&(l==1))

  {

  sum=sum+i;

  l=2;

  cnt++;

  continue;

  }

  if ((k==0)&&(l==2))

  {sum=sum-i;

  l=1;

  cnt++;

  }

  k=0;

  }

  }

  ---------------------------------------------

  void countvalue()

  {int i,j;

  for(i=800;i>=500;i--)

  {for(j=2;j

  if(!(i%j)) break;

  if(j==i)

  { cnt++;

  if(cnt%2) sum+=i;

  else sum-=i;

  }

  }

  }

广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved