求出1000以下3或5的所有倍数的总和

时间:2013-06-29 06:11:46

标签: c

我多次尝试过这个程序,但我不能写答案。

#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。

4 个答案:

答案 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而不是1
sum = sum + 1 

必须是

sum = sum + i

如果你不想包含千元,你的循环必须是

for(i=0;i<1000;i++)