А давайте я укажу на все ошибки в вашей программе?
1) for(int i = 1 ...)
Самое бросающееся в глаза. Индексация массивов начинается с нуля. Соответственно, условие в цикле должно быть
for(int i = 0; i < N; ++i)
(И не придется заводить массив на N+1 элементов)
2) exit(0)
Любая ваша проверка сразу же приведет к завершению программы. Поэтому ваша программа изначально работает некорректно - происходит сравнение только двух первых элементов
3) пресловутый i++
Рассмотрим полную команду
if (p[i] < p[i++])
По приоритетам, первой выполнится "i++", после чего значение i увеличится на единицу, в результате чего итоговое сравнение будет эквивалентно
i += 1;
if (p[i] < p[i]) ...
Более того, даже если не учитывать неправильное сравнение и выход в первой же проверке, за один цикл for значение i оказывается увеличенным дважды (i++ в конце цикла и i++ в условии), что тоже далеко не нормально.
4) мелочи вроде
-printf(\n);
вместо того, чтобы дописать \n в конец прошлого текста
-использование short, когда эффективнее использовать int
В общем, тренируйтесь, познавайте принцип работы команд, совершенствуйте знание языка и впредь старайтесь избегать подобных ошибок :)
как можно быстро исправить эту программу:
int main()
{
setlocale(LC_ALL, "RUSSIAN");
int i;
int p[N];
for (i = 0; i < N; ++i) //вводим все числа
{
printf("\n Введите элемент массива p[i] = ");
scanf_s("%d", &p[i]);
}
for (i = 0; i < N; ++i) //печатаем, что ввели - для проверки
printf("%5d ", p[i]);
for (i = 0; i < N - 1; ++i) //проходимся по всем числам до предпоследнего
{ //потому что последнее не с чем сравнивать, за ним дальше чисел нет
if (p[i] >= p[i+1]) //проверяем только случай, когда условие возрастания не выполняется
{
printf("\n Элементы массива - НЕ возрастающая последовательность\n");
exit(0); //сразу же выходим из программы, т.к. определили невозрастание
} //иначе продолжаем сравнивать элементы!
}
//мы до сих пор не вышли из программы, значит, последовательность всё же возрастающая
printf("\n Элементы массива - возрастающая последовательность");
}