7
計算500-800區(qū)間內(nèi)素數(shù)的個數(shù)cnt,并按所求素數(shù)的值從大到小的順序,再計算其間隔減、加之和,即第1個素數(shù)-第2個素數(shù)+第三個素數(shù)-第4個素數(shù)+第5個素數(shù)。。。的值sum。請編寫函數(shù)countvalue()實現(xiàn)程序的要求;最后main()函數(shù)調(diào)用函數(shù)writeDAT()把結(jié)果cnt和sum,輸出到文件OUT11.DAT中。
注意:部分源程序存放在prog1.c中請勿改動主函數(shù)main()和輸出數(shù)據(jù)函數(shù)writeDAT()的內(nèi)容。
#include
int cnt,sum;
void countvalue()
{
}
void main()
{cnt=sum=0;
countvalue();
printf("素數(shù)的個數(shù)=%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<i;j++)
if(!(i%j)) break;
if(j==i)
{ cnt++;
if(cnt%2) sum+=i;
else sum-=i;
}
}
}
更多資料請訪問:考試吧計算機等級考試欄目
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |