Найти номер первого минимального элемента среди положительных элементов, размещенных правее первого 0 - C (СИ)
Формулировка задачи:
Найти номер первого минимального элемента среди положительных элементом размещених правее первого элемента равного нулю. Никак не получается найти именно после нуля. Так нахожу минимальный среди положительных
А вот это попытка после нуля
Выводит минимальный но до нуля и номер го не выводит вовсе. В чем ошибка?Заранее спасибо
Листинг программы
- #include <stdio.h>
- #include <conio.h>
- int main()
- {
- int min, max, A[10],i, i_min;
- printf("Enter the 10 natural numbers:\n");
- for ( i = 0; i < 10; i++)
- {
- printf("Enter% i", i + 1);
- printf(" element: ");
- scanf("%i", &A[i]);
- }
- for ( i = 0; i < 10; i++)
- {
- if (A[i] < min && A[i] > 0)
- min = A[i];
- }
- for ( i = 0; i < 10; i++)
- {
- if (min == A[i])
- printf ("Nomer of the minimum element among the positive:%i\n", i+1);
- }
- printf("The minimum element among the positive: %i", min) ;
- getch();
- return 0;
- }
Листинг программы
- #include <stdio.h>
- #include <conio.h>
- int main()
- {
- int min, max, A[10],i,k;
- printf("Enter the 10 natural numbers:\n");
- for ( i = 0; i < 10; i++)
- {
- printf("Enter% i", i + 1);
- printf(" element: ");
- scanf("%i", &A[i]);
- }
- for ( i = 0; i < 10; i++)
- {
- if(A[i] == 0)
- i = k;
- }
- for ( i = k+1; i < 10; i++)
- {
- if (A[i] < min && A[i] > 0 )
- min = A[i];
- }
- for ( i = k+1; i < 10; i++)
- {
- if (min == A[i])
- printf ("Number of the minimum element among the positive:%i\n", i+1);
- }
- printf("The minimum element among the positive: %i", min) ;
- getch();
- return 0;
- }
Решение задачи: «Найти номер первого минимального элемента среди положительных элементов, размещенных правее первого 0»
textual
Листинг программы
- int min=9999999, max, A[10]={1,2,3,0,54,5,6,7,8,9},i, i_min,iZero=-1;
- printf("Enter the 10 natural numbers:\n");
- for ( i = 0; i < 10; i++)
- {
- printf(" %i", A[i]);
- if(iZero<0 && A[i]==0) iZero=i;
- }
- if(iZero<0) printf("No No No..."); else {
- for ( i = iZero+1; i < 10; i++)
- {
- if (A[i] < min && A[i] > 0)
- min = A[i];
- }
- printf("\nThe minimum element among the positive: %i", min) ;
- }
Объяснение кода листинга программы
- Ввод массива A с помощью цикла for. Значения массива выводятся на экран с помощью функции printf.
- Переменная iZero инициализируется значением -1. Она используется для хранения индекса первого вхождения 0 в массив A.
- Цикл for используется для поиска первого вхождения 0 в массив A. Если 0 найден, то индекс этого элемента сохраняется в переменной iZero.
- Если после прохода по всем элементам массива iZero остается равным -1, то выводится сообщение
No No No...
. - В противном случае, начинается поиск первого положительного элемента, меньшего чем текущее значение переменной min.
- Если такой элемент найден, то его значение присваивается переменной min.
- После прохода по всем элементам массива, выводится сообщение с найденным значением переменной min.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д