Сортировка целочисленного массива по возрастанию - C (СИ)
Формулировка задачи:
Отсортировать одномерный массив целых чисел по возрастанию.
Написал программу, но преподаваель говорит, что неправильно, укажите на ошибку, пожалуйста.
int main()
{
int a[15];
int i,s;
for(i=0;i<15;i++)
{
a[i]=rand()%50;
}
s=a[i+1]>1[i]];
printf("%d",s);
}Решение задачи: «Сортировка целочисленного массива по возрастанию»
textual
Листинг программы
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h> //необходимо подключить заголовочный файл ввода-вывода
int main()
{
int a[15];// = { 0 }; желательно инициализировать массив нулями
int i/* = 0*/, s/* = 0*/; //инициализация!!!
for (i = 0; i < 15; i++) { //на начальных этапах в циклах и if`ах фигурную скобку лучше начинать здесь
a[i] = rand() % 50;
} //здесь заканчивает цикл заполнения массива случайными числами, при этом, чтобы цифры при каждом запуске были разные необходимо после main() { добавить srand((int)time(NULL));
s = a[i + 1]>1[i]]; // это не сортировка, это ерунда, так как > вернет нуль или единицу, 1[i]] - такого вообще не может быть.
printf("%d", s);
}
} //лишняя фигурная скобка
Объяснение кода листинга программы
- В начале кода подключается заголовочный файл inout.h, который содержит функции для ввода и вывода данных.
- Затем определяется переменная
aтипаintс длиной 15. Ее инициализируют нулями. - Определяются две переменные:
iиs, которые будут использоваться в цикле. - Запускается цикл, который заполняет массив
aслучайными числами от 0 до 49 с помощью функцииrand(). - После заполнения массива, происходит сортировка массива методом, который вызывает ошибку, так как использует оператор
>для сравнения элементов массива. - И наконец, в консоль выводится значение переменной
s, которая не имеет смысла после сортировки массива. - В конце кода находится лишняя фигурная скобка, которая должна быть удалена.