Если максимальный элемент стоит на чётной позиции, то заменить все положительные нечётные элементы на 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, выводится сообщение о том, что минимальное значение найдено, и его значение и индекс выводятся на экран.