Найти самый маленький элемент в массиве, где ошибка? - C (СИ)
Формулировка задачи:
Найти самый маленький элемент в массиве Х не входящий в массив У
#include <stdio.h> #include <conio.h> int main() { int i,n,j,m,k=0,min; int x[100],y[100],c[100]; scanf("%d",&n); scanf("%d",&m); for (i=0;i<n;i++) scanf("%d",&x[i]); for (j=0;j<m;j++) scanf("%d",&y[j]); for (i=0;i<n;i++) { for (j=0;j<m;j++) { if (x[i]!=y[j]) { c[k]=x[i]; k++; } } } min=c[0]; for (k=0;k<3;k++) { if (min>c[k]) min=c[k]; } printf("%d",min); getch(); return 0; }
Решение задачи: «Найти самый маленький элемент в массиве, где ошибка?»
textual
Листинг программы
#include <stdio.h> #include <conio.h> int main() { int i,n,j,m,k=0; int min=32767; int finded; int x[100],y[100],c[100]; printf("\n == Razmernost massivov =="); printf("\nN="); scanf("%d",&n); printf("\nM="); scanf("%d",&m); printf("\n == Massiv X =="); for (i=0;i<n;i++) { printf("\nEl # %d=",i); scanf("%d",&x[i]); } printf("\n == Massiv Y =="); for (j=0;j<m;j++){ printf("\nEl # %d=",i); scanf("%d",&y[j]); } int p=0; for (i=0;i<n;i++) if (x[i]<min) { finded=0; for (j=0;j<m;j++) if (y[j]==x[i]) finded=1; if (finded==0) {min=x[i]; p=1;} } if (!p) printf("Net min!"); else printf("min = %d",min); getch(); return 0; }
Объяснение кода листинга программы
- Предполагаемая ошибка в коде:
Возможно, в коде есть ошибка в условии проверки нахождения минимального элемента в массиве. Причина может быть в неправильном определении переменной
finded
перед циклом, которая должна быть инициализирована как1
, а не0
. Это может привести к тому, что код не будет находить минимальный элемент, если он присутствует в массивеy
. - Пояснение к коду:
- Строки 1-14: Ввод размеров массивов
n
иm
с помощью функцииscanf()
. - Строки 15-28: Ввод элементов массива
x
с помощью функцииscanf()
. - Строки 29-42: Ввод элементов массива
y
с помощью функцииscanf()
. - Строки 43-62: Поиск минимального элемента в массиве
x
. Если элементx[i]
меньше текущего минимального значенияmin
, то проверяется, есть ли такой же элемент в массивеy
. Если такого элемента нет, тоmin
обновляется, иfinded
устанавливается в1
. Еслиfinded
остается0
, значит, минимальный элемент найден. - Строки 63-66: Проверка, был ли найден минимальный элемент. Если нет, выводится сообщение
Net min!
. В противном случае выводится значениеmin
. - Строка 67: Использование функции
getch()
для приостановки выполнения программы до тех пор, пока пользователь не нажмет клавишу. - Строка 68: Возврат значения
0
, что означает успешное завершение программы.
- Строки 1-14: Ввод размеров массивов
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д