Измените это:
scanf ("%d", n);
на это:
scanf ("%d", &n);
, поскольку scanf( const char * format, ...)
ожидает указатель в качестве своего параметра.
Более того, измените это:
for (i = 0; i < n, i++;)
на это:
for (i = 0; i < n; i++)
, поскольку обычный синтаксис цикла:
for (init; условие); прирост)
То же самое для второго цикла for: for (i = 0; i < n, i++;)
, который должен быть for (i = 0; i < n; i++)
Вы можете разрешить вашему компилятору предупреждать вас об этом:Передача флагов, поддерживающих компиляцию, например Wall
для GCC (Компилировать так: gcc prog.c -Wall
).Тогда вы получите такие предупреждения:
prog.c: In function 'main':
prog.c:7:12: warning: format '%d' expects argument of type 'int *', but argument 2 has type 'int' [-Wformat=]
7 | scanf ("%d", n);
| ~^ ~
| | |
| | int
| int *
prog.c:9:20: warning: left-hand operand of comma expression has no effect [-Wunused-value]
9 | for (i = 0; i < n, i++;)
| ^
prog.c:13:20: warning: left-hand operand of comma expression has no effect [-Wunused-value]
13 | for (i = 0; i < n, i++;)
| ^
prog.c:5:16: warning: unused variable 'j' [-Wunused-variable]
5 | int *arr, i, j, n;
| ^
prog.c:7:3: warning: 'n' is used uninitialized in this function [-Wuninitialized]
7 | scanf ("%d", n);
| ^~~~~~~~~~~~~~~