2017-02-09 6 views
0

Мне нужно, чтобы моя программа запускалась и сообщала мне сумму введенного натурального числа, также нужно сказать вместе с суммой, которая мне нужна, чтобы показать сумму нечетных и четных чисел. Это то, что я до сих пор, и это не будет правильно работать в С.C программирование с добавлением натуральных чисел

#include <stdio.h> 
int main (void) 
{ 
    int n, i, sum = 0; 
    int sum1 = 0; 
    int sum2 = 0; 
    printf("enter a number and I will tell you the numbers sums."); 
    scanf("%d", &n); 

    for(i=1; i<= n; ++n) 
    { 
     sum2 = sum2 + n; 
    } 
    for(i=2; i<= n; ++n) 
    { 
     sum1 = sum1 + n; 
    } 
    for(i=1; i<= n; ++n) 
    { 
     sum += i; 
    } 
    printf("sum of integers is %d" ,sum); 
    printf("sum of odd integers is %d" ,sum1); 
    printf("sum of even integers is %d" ,sum2); 

    return 0; 
} 
+0

для любого числа п – dylan

+0

потребностей [mcve] и правильной постановки задачи. –

+1

т. Е. «Опишите проблему». «Это не работает» - это не проблема. Расскажите нам, каково должно быть ожидаемое поведение. Расскажите нам, что такое точная формулировка сообщения об ошибке, и какая строка кода ее производит. Поместите краткое резюме проблемы в названии вашего вопроса ». –

ответ

1

В ваших петель посчитать странным и даже, вам нужно увеличить на 2 в петле, а не один. Вместо ++i используйте i += 2:

for (i = 2; i <= n; i += 2) 

И это должно быть i в приросте, не n. Вы меняете значение своей конечной переменной. Кроме того, если я не понимаю, что вы пытаетесь сделать, вы должны добавить i к своим суммам, а не n.

1

Сумма первых N натуральных чисел является хорошо известной формулой,

sum(range(1,N)) == N*(N+1)/2 

Прочитайте эту экспозицию, а затем увидеть, если вы можете получить формулу для суммы четного или нечетного, http://mathandmultimedia.com/2010/09/15/sum-first-n-positive-integers/

(подсказка: сумма любого другого числа будет составлять около 1/2)

0

Вы только требуют один цикл вот как

sum = sum1= sum2 =0; 
for(i=0; i<= n; i++) 
{ 
sum = sum +i; 
if(i %2 == 0) 
sum2 += i; 
else 
sum1 +=i; 
} 

использовать, если заявление для чисел фильтрации и не забудьте инициализировать все суммы вар до 0

Смежные вопросы