2006年9月全国等级考试三级c语言上机题库(四十一)
文章作者 100test 发表时间 2007:03:10 19:17:37
来源 100Test.Com百考试题网
★☆题目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
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==(3*i/2)/100)&.&.((3*i/2)/1000==(3*i/2)0/10))
{cnt .sum =i 3*i/2.}
}
运算结果为:
满足条件的个数=4
满足条件所有的SIX与NINE的和=9430