搜索
楼主: shenhua
打印 上一主题 下一主题

求大神帮忙改正一下程序。

[复制链接]
16#
发表于 2012-9-1 16:31:14 | 只看该作者
好像没错啊 不知道啊
17#
发表于 2012-9-1 20:12:12 | 只看该作者
最后一个 if 语句条件应该改为或者   ||
18#
发表于 2013-3-31 08:36:26 | 只看该作者
不错不错,学习了
19#
发表于 2013-3-31 20:48:51 | 只看该作者
此挑战题目是:“请问1~123456之间所有7的倍数和末尾含7的数的和是?”

反复读了你的程序,才明白你的原意应该是分别计算出7的倍数和(b)、末尾是7的数的和(d)、既是7的倍数末尾又是7的数的和(g),然后计算b+d-g也就完成了挑战。
按照这个思路,你程序中g的计算错了,同时做为循环变量用的a、c、f 完全可以合并为一个变量。
计算g所用到的逻辑条件应该是(f % 10 == 7 && f % 7 == 0),而你程序中的条件却是末尾既是0又是7,哪有这样的数啊!

15楼的程序简洁明了,应该说是针对这个挑战的最佳程序。不知你为何没有结帖。
20#
发表于 2013-7-29 18:13:36 | 只看该作者
你得到的结果是什么?
21#
发表于 2013-9-11 22:18:34 | 只看该作者
#include "stdio.h"
void main()
{
long int a=0,b=0,c=-3,d=0,g=0,e,f;
while(a<123451)
{a+=7;
b+=a;}
while(c<123447)
{c+=10;
d+=c;}
for(f=1;f<=123456;f++)
{
if(f%10==0&&f%10==7)
{
g+=f;}
e=b+d-g;
}
printf("%d",e);  }
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表