Найти наименьшее число в массиве - C (СИ)
Формулировка задачи:
Всем добрый день , прошу вашей помощи в дописании программы :
Само задание по программе : Массив из N элементов состоящий из натуральных чисел . Найти наименьшее число в массиве (если эти числа повторяются , тогда первое число с левого края ) и поменять местами это с первым элементом массива .
Как видите программа чуток сделана уже , но она тока на 50 % готова , незнаю как сделать что-бы он менял местами и если одинаковые числа - брал самое левое ... Если кто-то может помочь я буду тока рад = зарее всем спасибо за помощь
#pragma hdrstop #pragma argsused #include <stdio.h> #include <conio.h> #ifdef _WIN32 #include <tchar.h> #else typedef char _TCHAR; #define _tmain main #endif void main () { int ns, i, mas[5], min ; char ch; // atkartosanai int min_value = mas[0]; do { printf("Vvedite 5 naturalnih cisel, otdelaja ih SPACE:\n"); for (i = 0; i <= 5; i++) { scanf ("%d", &mas[i]); } for(i = 0; i < 5; i++) if(mas[i] < min_value) min_value = mas[i]; printf("%i", min_value); printf("\n\nPovtorit y, esli ne hotite, togda lubuju druguju knopku\n"); flushall(); scanf("%c", &ch); clrscr(); } while (ch == 'y' || ch == 'Y'); getch(); }
Решение задачи: «Найти наименьшее число в массиве»
textual
Листинг программы
#include <stdio.h> void main(void) { unsigned int N, min, min_index, mas[1000]; char ch; do { printf("Vvedite razmer massiva: "); scanf("%d", &N); printf("Vvedite elementu massiva: "); for (int i = 0; i < N; i++) { scanf("%d", &mas[i]); } min = mas[0]; min_index = 0; for (int i = 0; i < N; i++) { if (mas[i] <= min) if ((mas[i]!=min)&&(i>min_index)) { min_index = i; min = mas[i]; } } unsigned int temp = mas[0]; mas[0] = mas[min_index]; mas[min_index] = temp; for (unsigned int i = 0; i < N; i++) { printf("%d ", mas[i]); } printf("\nPovtorit y, esli ne hotite, togda lubuju druguju knopku\n"); scanf("%s", &ch); } while ((ch == 'y') || (ch == 'Y')); }
Объяснение кода листинга программы
В этом коде:
- Объявлены переменные:
N
- размер массива;min
- наименьшее число;min_index
- индекс наименьшего числа;mas[1000]
- массив для хранения чисел;ch
- символ для проверки наличия желания повторить ввод.
- В цикле do-while происходит ввод данных и поиск наименьшего числа в массиве:
- В начале цикла пользователь вводит размер массива;
- Затем происходит заполнение массива числами;
- Переменная
min
инициализируется первым элементом массива, а переменнаяmin_index
инициализируется индексом этого элемента; - Далее происходит проход по всем элементам массива. Если текущий элемент меньше
min
, то он становится новымmin
, а его индекс становится новымmin_index
, если текущий элемент не равенmin
и его индекс большеmin_index
. - После прохода по всем элементам массива наименьшее число перемещается в начало массива, а его индекс становится первым в цикле.
- В цикле от 0 до N происходит вывод элементов массива.
- После вывода элементов массива пользователю предлагается ввести 'y' или 'Y' для повторного ввода, любую другую клавишу для выхода.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д