2013-06-29 8 views
-5

Я пробовал эту программу много раз, но я не могу написать ответ.Найдите сумму всех кратных 3 или 5 ниже 1000

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

ответ

3
if((i%5==0)||(i%3==0)) 
     { 
      sum=sum+1; 
     } 

должен быть

if((i%5==0)||(i%3==0)) 
     { 
      sum=sum+i; 
     } 
1

Изменить

sum=sum+1; 

в

sum=sum+i; 
0

Очень основной погрешности, вы должны принять значение цикла я вместо 1 после если условия

sum = sum + 1 

должен быть

sum = sum + i 

И если вы не Не хотите включать тысячи, ваша петля должна быть

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

В вашей петле вы закодировали 1, а не i. Следует (добавляется белое пространство для ясности - это бесплатно):

if ((i % 5 == 0) || (i % 3 == 0)) 
    { 
     sum = sum + i; 
    } 

Или, более лаконично:

if ((i % 5 == 0) || (i % 3 == 0)) 
    { 
     sum += i; 
    }