Если максимальный элемент стоит на чётной позиции, то заменить все положительные нечётные элементы на 99 - C (СИ)
Формулировка задачи:
ТЗ:ввести массив A(n). Если максимальный элемент стоит на чётной позиции, то заменить все положительные нечётные элементы на 99, иначе- найти минимальный из элементов массива, которые больше 20, но меньше 30 и его номер.
С первой частью справился(макс. эл-нт на чётной позиции), а вот со второй как-то проблемно. Помогите дописать код.
#include <stdio.h> int main() { int a,imin,imax,i,n,schetmin,schetmax,sum; printf("Vvedite n"); scanf("%d", &n); sum=0; int a[n]; for(i=0;i<n;i++) { printf("a[%d]=", i); scanf("%d", &a[i]); } imin=a[0]; schetmin=0; for(i=0;i<n;i++) { if(a[i]<imin) { imin=a[i]; printf("minimalnoe eto a[%d]=%d\n", i,imin); schetmin=i; } } imax=a[0]; schetmax=0; for(i=0;i<n;i++) { if(a[i]>imax) { imax=a[i]; printf("maximalnoe eto a[%d]=%d\n", i,imax); schetmax=i; } } printf("imin=%d and imax=%d\n", imin,imax); if(schetmax%2==0); { for(i=0;i<n;i++) { if(a[i]>0 && i%2!=0) { a[i]=99; } } for(i=0;i<n;i++); { printf("a[%d]=%3d\n", i,a[i]); } } return 0; }
Решение задачи: «Если максимальный элемент стоит на чётной позиции, то заменить все положительные нечётные элементы на 99»
textual
Листинг программы
int n = 17; int a[17]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}; int minValue=30; // минимальное значение, которое больше 20, но меньше 30 int minPos=-1; // позиция этого минимального значения в массиве "а" for(int i=0;i<n;i++){ if(a[i]>20&&a[i]<30){ if(a[i]<minValue){ minValue=a[i]; minPos=i; } } } if(minPos==-1){ printf("minimalnogo znachenia, kotoroe bolshe 20, no menshe 30 netu\n"); }else{ printf("minimalnoe znachenie, kotoroe bolshe 20, no menshe 30 est'\n"); printf("znachenie: %d, nomer: %d\n",minValue,minPos); }
Объяснение кода листинга программы
- Объявлена переменная
n
со значением 17, которая является размером массиваa
. - Массив
a
объявлен с 17 элементами, инициализированными значениями от 0 до 16. - Объявлены переменные
minValue
иminPos
, которые будут использоваться для хранения минимального значения и позиции этого значения в массивеa
. Обе переменные инициализированы значениями по умолчанию (-1 и 30). - Происходит цикл по всем элементам массива
a
. - Если текущий элемент больше 20 и меньше 30, то он сравнивается с текущим значением
minValue
. - Если текущий элемент меньше
minValue
, то он становится новымminValue
, аminPos
становится его индексом. - Если текущий элемент не меньше
minValue
, то ничего не происходит. - По завершении цикла проверяется значение
minPos
. Если оно равно -1, выводится сообщение о том, что минимального значения не найдено. - Если
minPos
не равно -1, выводится сообщение о том, что минимальное значение найдено, и его значение и индекс выводятся на экран.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д