Если максимальный элемент стоит на чётной позиции, то заменить все положительные нечётные элементы на 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);
    }

Объяснение кода листинга программы

  1. Объявлена переменная n со значением 17, которая является размером массива a.
  2. Массив a объявлен с 17 элементами, инициализированными значениями от 0 до 16.
  3. Объявлены переменные minValue и minPos, которые будут использоваться для хранения минимального значения и позиции этого значения в массиве a. Обе переменные инициализированы значениями по умолчанию (-1 и 30).
  4. Происходит цикл по всем элементам массива a.
  5. Если текущий элемент больше 20 и меньше 30, то он сравнивается с текущим значением minValue.
  6. Если текущий элемент меньше minValue, то он становится новым minValue, а minPos становится его индексом.
  7. Если текущий элемент не меньше minValue, то ничего не происходит.
  8. По завершении цикла проверяется значение minPos. Если оно равно -1, выводится сообщение о том, что минимального значения не найдено.
  9. Если minPos не равно -1, выводится сообщение о том, что минимальное значение найдено, и его значение и индекс выводятся на экран.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.909 из 5
Похожие ответы