Непонятные сообщения компилятора
Я несколько лет программировал на WindowsXP. Теперь пробую Linux Mint. И не понимаю. Использую следующий код:
#include <stdio.h>
int main()
{
int n, 1;
float num[100], sum = 0.0, average;
printf("Введите количество элементов: ");
scanf("%d", &n);
while (n > 100 || n <= 0)
(
printf("Количество должно быть в пределах от 1 до 100.\n");
printf("Введите количество еще раз: ");
scanf("%d", &n);
)
//Заполняем массив и параллельно подсчитываем среднее арифметическое
for(i = 0; i < n; ++i)
{
printf("%d, Введите число: ", i+1);
scanf("%f", num[i]);
sum += num[i];
}
average = sum/n;
printf("Среднее = %.2f\n", average);
return 0;
}
Источник: Кольцов Д.М. Эффективный Си на примерах.; стр.103
При компиляции получаю сообщения:
gcc -o test /media/andrew/k20190615_thi/Store_Projects/Projects_C/"Кольцов Эффективный Си на примерах"/43.c
/media/andrew/k20190615_thi/Store_Projects/Projects_C/Кольцов Эффективный Си на примерах/43.c: In function ‘main’:
/media/andrew/k20190615_thi/Store_Projects/Projects_C/Кольцов Эффективный Си на примерах/43.c:5:9: error: expected identifier or ‘(’ before numeric constant
5 | int n, 1;
| ^
/media/andrew/k20190615_thi/Store_Projects/Projects_C/Кольцов Эффективный Си на примерах/43.c:13:94: error: expected ‘)’ before ‘;’ token
13 | printf("Количество должно быть в пределах от 1 до 100.\n");
| ^
| )
/media/andrew/k20190615_thi/Store_Projects/Projects_C/Кольцов Эффективный Си на примерах/43.c:12:2: note: to match this ‘(’
12 | (
| ^
/media/andrew/k20190615_thi/Store_Projects/Projects_C/Кольцов Эффективный Си на примерах/43.c:16:3: error: expected ‘;’ before ‘for’
16 | )
| ^
| ;
......
19 | for(i = 0; i < n; ++i)
| ~~~
Ничего не понимаю!
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
Похоже, в книге невнятно пропечаталось int n, 1;
, и надо int n, i;
— т.е. буква i
, а не 1... Ну и скобочки после while
не круглые. В scanf
пропущен &
...
#include <stdio.h>
int main()
{
int n, i;
float num[100], sum = 0.0, average;
printf("Введите количество элементов: ");
scanf("%d", &n);
while (n > 100 || n <= 0)
{
printf("Количество должно быть в пределах от 1 до 100.\n");
printf("Введите количество еще раз: ");
scanf("%d", &n);
}
//Заполняем массив и параллельно подсчитываем среднее арифметическое
for(i = 0; i < n; ++i)
{
printf("%d, Введите число: ", i+1);
scanf("%f", &num[i]);
sum += num[i];
}
average = sum/n;
printf("Среднее = %.2f\n", average);
return 0;
}
Я несколько лет программировал на WindowsXP
Точно?... На C?