Программирование на C: числа суммирования, введенные пользователем с помощью цикла for - PullRequest
0 голосов
/ 27 января 2019

Итак, мне нужно написать программу, чтобы запросить у пользователя целое число, а затем это целое число будет определять, сколько еще записей получит пользователь, прежде чем добавить все введенные числа.Итак, если первое введенное целое число равно «5», то пользователь может ввести еще 5 целых чисел.Эти 5 целых чисел затем добавляются вместе в конце и отображаются.Я написал программу с циклами for, но по какой-то причине она добавляет только первые 4 целых числа, а не 5-е.Вот код:

int main() { //declare main function

       int c=0,n,i; //declare integers
       int sum=0;

       printf("\nEnter an integer: "); //ask user for input and create a label
       scanf("%d",&n);


       if (n>=0) { //use if statement

           for (i=0;i<n;i++) //use for loop inside if statement to account for negative integers

           {
               sum+=c;
               printf("Enter an integer: ");
               scanf("%d",&c);
           }

       }

       else {

           printf("Wrong number. You can only enter positive integers!");

       }


       printf("The sum of the %d numbers entered is: %d",i,sum);

       return 0;
}

Ответы [ 2 ]

0 голосов
/ 27 января 2019

Хорошо разбить программу.использовать функции.Не все в основной функции.

int getInteger(void)
{
    char str[100];
    int number;

    while(!fgets(str, 100, stdin) || sscanf(str, "%d", &number) != 1)
    {
        printf("Wrong input. Try again:")  ; 
    }
    return number;
}

int main()
{
    int nsamples;
    long long sum = 0;

    printf("Enter number of samples:");
    while((nsamples = getInteger()) <= 0)
    {
        printf("Try again, entered number must be >= 0\n");
    }

    printf("Enter numbers:\n");
    for(int i = 1; i <= nsamples; i++)
    {
        printf("Sample no %d:", i);
        sum += getInteger();
    }
    printf("The sim is: %lld\n", sum);
}
0 голосов
/ 27 января 2019

Просто измените положение

sum+=c; 

, чтобы после сканирования оно работало.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...