三级等考上机提问

来源:百度知道 编辑:UC知道 时间:2024/05/11 03:45:57
我是一个菜鸟,在准备三级网络技术上机考试。但在模拟软件上每次都报零分。我觉得我没有编错,不知道是哪里出了问题。
题目和我编的东西如下:
题目:
下列程序的功能是:选出5000以下符合条件的自然数。条件是:千位数字与百位数字之和等于十位数字与个位数字之和,且千位数字与百位数字之和等于个位数字与千位数字之差的10倍。计算并输出这些四位自然数个数CNT及这些数的和SUM。请编写函数countValve()实现程序的要求,最后调用函数writeDat()把结果cnt和sum,输出到文件OUT.DAT中。
部分源程序存在文件prog.c中。
请勿改动主函数main()和输出数据函数writeDat()的内容

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

void countValue()
{int i,ge,shi,bai,qian;
for(i=1;i<5000;i++)
ge=i%10,shi=i%100/10,bai=i/100%10,qian=i/1000;
if((qian+bai)==(ge+shi)&&(qian+bai)==10*(ge-qian)) {cnt++;sum+=i;}

}

void main()
{
cnt=sum=0;

countValue();
printf("满足条件的自然数的个数=%d\n",cnt);
printf("满足条件的自然数的个数之和=%d\n",sum);
writeDat();
}

writeDat()
{
FILE *fp;

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

我也菜鸟一个,刚学C几个月

for(i=1;i<5000;i++)
ge=i%10,shi=i%100/10,bai=i/100%10,qian=i/1000;
if((qian+bai)==(ge+shi)&&(qian+bai)==10*(ge-qian)) {cnt++;sum+=i;}

这一句代码倒是没见过
我想是不是该写成
for(i=1;i<5000;i++)
{
ge=i%10;
shi=i%100/10;
bai=i/100%10;
qian=i/1000;

if((qian+bai)==(ge+shi)&&(qian+bai)==10*(ge-qian)) {cnt++;sum+=i;}
}

还有,等级考试的模拟软件本身就有问题的,我考试前用时没有几次能有成绩的,建议你每次评分前看下目录里的输出文件,推测一下和你要的结果是否相同,3级里的题很多都不显示结果,而是直接写文件的
或者检查Tc的版本,不能有出入。还要看你选择进入的是测试还是练习。反正会这些程序就够了,不要太在乎模拟环境。

for(i=1;i<5000;i++)
ge=i%10,shi=i%100/10,bai=i/100%10,qian=i/1000;
if((qian+bai)==(ge+shi)&&(qian+bai)==10*(ge-qian)) {cnt++;sum+=i;}

这一句代码倒是没见过
我想是不是该写成
for(i=1;i<5000;i++)
{
ge=i%10;
shi=i%100/10;
bai=i/100%10;
qian=i/1000;

if((qian+bai)==(ge+shi)&&(qian+bai)==10*(ge-qian)) {cnt++;sum+=i;}
}

还有,等级考试的模拟软件本身就有问题的,我考试前用时