Отсортировать массив, заданный с клавиатуры, простым методом выбора по убыванию - C (СИ)
Формулировка задачи:
Нужно отсортировать массив, заданный с клавиатуры простым методом выбора по убыванию.
На представленный ниже код, компилятор ругается и выдаёт:
Error D:\TURBOC2\SORT.C 11 Expression syntax in function main
Error D:\TURBOC2\SORT.C 12 Undefined symbol 'a' in function main
Где ошибка? Чёт я не пойму Если кто поможет исправить буду оч благодарен.
#include <stdio.h> /* Программа написана на языке Си. Простой выбор по убыванию */
#define n 5
main(){
int b[n];
int i;
for (i = 0; i<n; i++) scanf("%i", &b[i]);
for (i = 0; i<n-1; i++){
int imin = i;
for (int j = i+1; j<n; j++)
if (b[j] < b[imin]) imin = j;
int a = b[i]; /* обмен эл-тов массива через буферную переменную */
b[i] = b[imin];
b[imin] = a;
}
for (i = 0; i<n; i++) printf("\n %i\n",b[i]);
return 0;
}Решение задачи: «Отсортировать массив, заданный с клавиатуры, простым методом выбора по убыванию»
textual
Листинг программы
#include <stdio.h> /* ÏðîãðГ*ììГ* Г*Г*ГЇГЁГ±Г*Г*Г* Г*Г* ÿçûêå Ñè. Ïðîñòîé âûáîð ГЇГ® óáûâГ*Г*ГЁГѕ */
#define n 5
int main(){
int b[n];
int i, a, j, imin;
for (i = 0; i<n; i++) scanf("%i", &b[i]);
for (i = 0; i<n-1; i++){
imin = i;
for (j = i+1; j<n; j++)
if (b[j] < b[imin]) imin = j;
a = b[i]; /* îáìåГ* ГЅГ«-òîâ Г¬Г*Г±Г±ГЁГўГ* ÷åðåç ГЎГіГґГҐГ°Г*ГіГѕ ïåðåìåГ*Г*ГіГѕ */
b[i] = b[imin];
b[imin] = a;
}
for (i = 0; i<n; i++) printf("\n %i\n",b[i]);
return 0;
}
Объяснение кода листинга программы
- Подключение стандартной библиотеки ввода-вывода
- Объявление константы n типа int, которая определяет размер массива
- Создание массива b типа int с размером n и инициализацией его нулями
- Ввод n целых чисел с клавиатуры и сохранение их в массиве b с помощью функции scanf
- Повторение цикла для каждого элемента массива b, начиная с 0 и до n-1
- Поиск минимального элемента в оставшейся части массива (от элемента i+1 до n-1)
- Перемещение текущего элемента на позицию минимального элемента
- Вывод на экран всех элементов массива b в порядке убывания
- Возврат 0, что означает успешное завершение программы