补充countValue()函数,函数功能是;选出5000以下符合条件的自然数。其条件是;千位数与百位数之和等于十位数与个位数之和,并且千位数与百位数之和等于个位数与十位数之差的10倍。计算并输出这些四位自然数的个数count以及这些数之和sum。最后调用

admin2012-07-20  34

问题 补充countValue()函数,函数功能是;选出5000以下符合条件的自然数。其条件是;千位数与百位数之和等于十位数与个位数之和,并且千位数与百位数之和等于个位数与十位数之差的10倍。计算并输出这些四位自然数的个数count以及这些数之和sum。最后调用函数WriteData(),把结果count和sum输出到OUT.DAT中。
注意;部分源程序已经给出。
请勿改动主函数Main()中的内容。
试题程序;
#include
int count,sum;
void countValue()
{
}
void WriteData()
{
  FILE*fp;
  fp=fopen("OUT.DAT","w");
  fprintf(fp,"%d\n%d\n",count,sum);
  fclose(fp);
}
void main()
{
  count=sum=0;
  countValue();
  printf("满足条件的自然数个数是;%d\n",count);
  printf("满足条件的自然数个数之和是;%d\n",sum);
  WriteData();
}

选项

答案 int i,thou,hun,ten,data; for(i=5000;i>=1000;i--) { thou=i/1000; hun=i%1000/100; ten=i%100/10; data=i%10; if(thou+hun==ten+data&&thou+hun==(data-ten)*10) { count++; sum+=i } }

解析 For循环递减遍历5000~1000之间的数,并且取当前数的千位数字、百位数字、十位数字、个位数字。如果千位加百位等于十位加个位且千位加百位等于个位减去千位乘10,则计数值count加1,并将i累加到sum中。
转载请注明原文地址:https://jikaoti.com/ti/B8R7FFFM
0

最新回复(0)