Найти номер первого минимального элемента среди положительных элементов, размещенных правее первого 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.