Member 13578622 Ответов: 3

Простое для цикла упражнение имеет ошибки


<pre>#include <stdio.h>

int main()
{

int num;
int numIn;
int sum;
int average;

for (num = 0; num = 10; num++)
    {
        scanf("%d", &numIn);
        prinf("Numbers Inputted: %d", numIn);
        sum = numIn + sum;

    }

}

average = sum/2;
printf("The average sum of the 10 numbers are: %d", average);




}


Что я уже пробовал:

Я попытался переместить свою сумму int вокруг и т. д., Но это не сработало.

[no name]

В вашем коде есть много проблем.Во-первых, ваш код не имеет основной функции end curly brace в правильном положении.Во-вторых, ты никогда не выйдешь из петли .Следовательно, ваше среднее значение никогда не будет напечатано.

3 Ответов

Рейтинг:
6

debasish mishra

#include <stdio.h>

int main()
{

int num;
int numIn;
int sum;
int average;

for (num = 0; num < 10; num++)
    {
        scanf("%d", &numIn);
        printf("Numbers Inputted: %d", numIn);
        sum = numIn + sum;

    }
    average = sum/2;
printf("The average sum of the 10 numbers are: %d", average);
return 0;

}


[no name]

Если вы голосуете вниз. Пожалуйста, дайте мне знать, почему вы это сделали, потому что это не показывает профессионализма.Я выполнил вышеописанный код и его выполнение в соответствии с необходимостью в компиляторе GCC

Richard MacCutchan

num <= 10 значит, 11 пунктов, а не 10. И перестаньте зазывать избирателей.

[no name]

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

Richard MacCutchan

Ваш средний показатель все еще неверен. И вы действительно рекламируете голоса, своими комментариями к другим авторам решений; не делайте этого, это делает вас похожим на ребенка.

[no name]

В порядке.:|

Рейтинг:
20

CPallini

В вашем коде много ошибок, попробуйте

#include <stdio.h>

// don't use magic numbers in code
#define N 10

int main()
{

  int n;
  int num;
  int sum = 0;
  double average; // in order to keep decimal digits

  for (n = 0; num < N; n++)
  {
    scanf("%d", &num);
    printf("Number entered: %d\n", num);
    sum += num;
  }

  average = ((double)sum)/N; // average is sum divided by numbers count

  printf("The average sum of the %d numbers is: %g\n", N, average);

}


[no name]

Пожалуйста, проголосуйте за решение 1.

CPallini

Решение 1 неверно: среднее значение должно быть sum/11 (вместо sum/2). Более того, сумма не инициализируется.

[no name]

Сделано.Хорошая точка:)

[no name]

5-5

Рейтинг:
13

OriginalGriff

Хм. Элементарная математика здесь?

for (num = 0; num = 10; num++)
    {
...
    }
average = sum/2;
printf("The average sum of the 10 numbers are: %d", average);

Может быть, если разделить на количество предметов, а не на 2?
int main()
    {
    int items = 10;
    int num;
    int numIn;
    int sum = 0;
    int average;
    
    for (num = 0; num < items; num++)
        {
        scanf("%d", &numIn);
        printf("Numbers Inputted: %d", numIn);
        sum += numIn;
        }
    average = sum / items;
    printf("The average of the %d numbers is : %d", items, average);
    }


[править]инициализируется сумма :о[/правка]


[no name]

Пожалуйста, проголосуйте за решение 1.

CPallini

Эй, Грифф, ты должен инициализироваться сумма :-)

OriginalGriff

Хорошая мысль - сделано! :румянец:

CPallini

5. сбалансированный глупый нисходящий голос.