В C массивы объявляются с их количеством элементов, таких как int x[10];
, как вы это сделали.Тем не менее, вы получаете доступ к его элементам, начиная с x[0]
.Поскольку существует 10
элементов, последний элемент - x[9]
.
Так что ваш цикл for
должен выглядеть следующим образом:
for(i=0; i<10; i++)
Кроме того, scanf_s()
требуется адресположить данные на.Если вы передаете x[i]
в scanf_s()
, вы передаете int
, хотя для этого требуется int *
(указатель на int
).
scanf_s("%d", &x[i]);
Далее, третье выражениев цикле for
- инструкция, которую она выполнит, как только элемент управления достигнет конца блока for
.Возможно, i+2
была опечаткой, но вы должны заменить ее на i++
, чтобы увеличивать значение i
на каждой итерации.
Наконец, вы сравниваете только смежные элементы в массиве.Это не дает вам минимум и максимум элементов.Сначала вы должны инициализировать эти переменные для первого элемента в массиве (x[0]
), а затем зациклить оставшуюся часть массива, начиная с i=1
и обновляя значения min
и max
, только если текущийэлемент x[i]
ниже или выше соответственно, чем min
и max
.
Собираем все вместе:
#include <stdio.h>
int main()
{
int i, max, min, x[10];
for(i=0; i<10; i++)
{
printf("Please enter a number: ");
scanf_s("%d", &x[i]);
printf("You entered %d\n", x[i]);
}
min = max = x[0];
for(i=1; i<10; i++)
{
if(x[i] < min)
min = x[i];
if(x[i] > max)
max = x[i];
}
printf("min = %d, max = %d\n", min, max);
return 0;
}