我多次尝试过这个程序,但我不能写答案。
#include<stdio.h>
int main()
{
long unsigned int i,sum=0;
clrscr();
for(i=0;i<=1000;i++)
{
if((i%5==0)||(i%3==0))
{
sum=sum+1;
}
}
printf("%d",sum);
getchar();
return 0;
}
我想要一个这样的答案:
如果我们列出10以下的所有自然数是3或5的倍数,我们得到3,5,6和9.这些倍数的总和是23。
答案 0 :(得分:3)
if((i%5==0)||(i%3==0))
{
sum=sum+1;
}
应该是
if((i%5==0)||(i%3==0))
{
sum=sum+i;
}
答案 1 :(得分:1)
更改
sum=sum+1;
到
sum=sum+i;
答案 2 :(得分:1)
您已将1
硬编码到循环中,而不是i
。它应该是(为了清晰起见,增加了空白区域 - 它是免费的):
if ((i % 5 == 0) || (i % 3 == 0))
{
sum = sum + i;
}
或者,更简洁:
if ((i % 5 == 0) || (i % 3 == 0))
{
sum += i;
}
答案 3 :(得分:0)
非常基本的错误,你必须在if条件
后取循环值i而不是1sum = sum + 1
必须是
sum = sum + i
如果你不想包含千元,你的循环必须是
for(i=0;i<1000;i++)