2006年9月全国等级考试三级c语言上机题库(四十一)

来源:计算机等级考试    发布时间:2012-08-28    计算机等级考试视频    评论

★☆题目41(无忧id 51 SIX/NINE问题)

 

下列程序prog1.c的功能是:计算出自然数SIX和NINE,它们满足的条件是SIX+SIX+SIX=NINE+NINE的个数cnt以及满足此条件所有的SIX与NINE的和SUM。请编写函数countValue()实现程序的要求,最后调用函数writeDat()把结果cnt和sum,输出到文件OUT15.DAT中。

其中的S,I,X,N,E各代表一个十进制数字。

部分源程序存在文件prog1.c中。

请勿改动主函数main()和输出数据函数writeDat()的内容。

#include <stdio.h>

int cnt,sum;

 

void countValue()

{ int s,i,x,n,e,six,nine;

for(s=1;s<10;s++)

for(i=0;i<10;i++)

for(x=0;x<10;x++)

for(n=1;n<10;n++)

for(e=0;e<10;e++)

{ six=s*100+i*10+x;

nine=n*1000+i*100+n*10+e;

if(3*six==2*nine)

{ cnt++;sum+=six+nine;}

}

}

 

void main()

{

cnt=sum=0;

 

countValue();

printf("满足条件的个数=%d/n",cnt);

printf("满足条件所有的SIX与NINE的和=%d/n",sum);

writeDat();

}

 

writeDat()

{

FILE *fp;

 

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

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

fclose(fp);

}

 

另一种经典解法:

void countValue()

{ int i;

for(i=666;i<=999;i=i+2)

if((i/10%10==(3*i/2)/100%10)&&((3*i/2)/1000==(3*i/2)%100/10))

{cnt++;sum+=i+3*i/2;}

}

 

运算结果为:

满足条件的个数=4

满足条件所有的SIX与NINE的和=9430

视频学习

我考网版权与免责声明

① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;

② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。

最近更新

社区交流

考试问答