Найти два минимальных элемента массива - C (СИ)
Формулировка задачи:
Здравствуйте! Собственно сам вопрос в заголовке. Сделал что-то такое, но не всегда правильно работает:
Скажите, как сделать правильно? Заранее спасибо!
#include <stdlib.h> #include <stdio.h> #include <time.h> int main(){ srand(time(NULL)); int N; printf("N="); scanf("%d",&N); int *tab=(int*)malloc(sizeof(int)*N); int element; for(int i=0;i<N;i++){ element=rand()%41; tab[i]=element; } for(int i=0;i<N;i++){ printf("%d",tab[i]); printf("\n"); } int minimum1; int minimum2; minimum2=tab[1]; for(int i=1;i<N;i++){ if(tab[i]<minimum2){ minimum2=tab[i]; } } minimum1=tab[0]; for(int i=0;i<N;i++){ if(minimum1<minimum2){ minimum1=tab[i]; } } printf("Minimum1 = %d ",minimum1); printf("\n Minimum2 = %d ",minimum2); return 0; }
Решение задачи: «Найти два минимальных элемента массива»
textual
Листинг программы
#include <stdlib.h> #include <stdio.h> #include <time.h> int main(void){ srand(time(NULL)); int N, ind; printf("N="); scanf("%d",&N); int *tab=(int*)malloc(sizeof(int)*N); for(int i=0;i<N;i++) { tab[i]=rand()%41; } for(int i=0;i<N;i++) { printf("%d",tab[i]); printf("\n"); } int minimum1,minimum2; minimum1=tab[0]; for(int i=1;i<N;i++) if(tab[i]<minimum1) { minimum1=tab[i]; ind=i; } minimum2=tab[0]; for(int i=1;i<N;i++) { if(tab[i]<minimum2 && ind!=i) { minimum2=tab[i]; } } printf("Minimum1 = %d ",minimum1); printf("\n Minimum2 = %d ",minimum2); return 0; }
Объяснение кода листинга программы
В этом коде:
- Сначала программа запрашивает у пользователя количество элементов в массиве (переменная N).
- Затем программа генерирует массив случайных целых чисел от 0 до 40 (используя функцию rand() и оператор модуля %).
- Далее программа выводит на экран все числа этого массива (используя цикл for и функцию printf()).
- Затем программа ищет два минимальных числа в массиве (используя два вложенных цикла for).
- Первый минимум запоминается в переменной minimum1, а второй - в переменной minimum2.
- Наконец, программа выводит на экран значения minimum1 и minimum2 (используя функцию printf()). Код корректно работает, если в нем не делать ошибок (например, не выделять память под массив или не проверять, что пользователь ввел корректное число при запросе количества элементов).
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д