帮美女做c的练习题,请大家帮忙看哈,谢谢。

来源:百度知道 编辑:UC知道 时间:2024/06/03 18:28:58
题目是这样的。
下列程序prog1.c的功能是:计算出自然数SIX和NINE满足条件SIX+SIX+SIX=NINE+NINE的个数cnt,以及满足此条件所有的SIX与NINE的和SUM。请编写函数countValue()实现程序的要求,最后main()函数调用函数writeDat()把结果cnt和sum输出到文件OUT.DAT中。
其中的S,I,X,N,E各代表一个十进制数字。允许代表的数字相同,但S和N不能为0。
例如:944 + 944 + 944 = 1416 + 1416
SIX NINE
部分源程序存在文件prog1.c中。
请勿改动主函数main()和输出数据函数writeDat()的内容。

#include <stdio.h>
int cnt,sum;

void countValue()
{
}

void main()
{
cnt=sum=0;

countValue();
printf("满足条件的个数=%d\n",cnt);
printf("满足条件所有的SIX与NINE的和=%d\n",sum);
writeDat();
}

writeDat()
{
FILE *fp;

fp=fopen("OUT.DAT","w");
fprintf(fp,"%d\n%d\n",cnt,sum);
fclose(fp);
}

她们课本的答案是这样的。她们老师也说课本答案是对的。
void countValue()
{
int i;
for(i=100;i<=999&&3*i/2<=9999;i++)
if(3*i%2

void countValue()
{
int i;
for(i=100;i<=999&&3*i/2<=9999;i++)
if(3*i%2==0&&3*i/2>1000&&3*i/2<=9999)
{

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

}
这里是不正确的,缺少判断要
满足SIX+SIX+SIX=NINE+NINE,i相同,n相同
你的做法是可以的,可以去掉外层的if判断了(显得多余了)!
内层的if可以直接写为if(i/10%10==3*i/2/100%10 && 3*i/2/1000==3*i/2/10%10)省略那些变量!

void countValue()
{
int six, nine;
for(six=100;six<=999&&3*six/2<=9999;six++)
{
nine = 3*six/2;
if(six/10%10==nine/100%10 && nine/1000==nine/10%10))
{

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

}
}
}

这问题挺有意思的,还是自己编吧

你是美女么?加我QQ慢慢聊阿,不懂就问我287705236

懒得看............还有你的面皮有点厚.......