Member 14763034 Ответов: 1

Почему не показываются максимальное и минимальное значения? Может ли кто-нибудь дать мне решение? Не могли бы вы дать мне код на этот счет, пожалуйста? Tnx заранее.


#include<stdio.h>

int main()
{
   int i,a[5],b[5],c[5];
   float avg,max,min;

   for (i=0;i<5;i++)
   {
      printf("Enter the  value of first array : ");
      scanf("%d",&a[i]);
   }

   for (i=0;i<5;i++)
   {
      printf("\nEnter the  value of second array : ");
      scanf("%d",&b[i]);
   }

   for(i=0;i<5;i++)
   {
      c[i]=a[i]+b[i];
      printf("\n Sum of %d & %d = %d",a[i],b[i],c[i]);
   }

   {
      avg = c[i]/5.0 ;
      printf("\n Average = %.2f'", avg);
   }

   max = c[0];

   for(i=0;i<5;i++)
   {
      if(c[i]  >  max)
         max = c[i];
   }

   {
      printf("Max = %d\n", max);
   }

   min = c[4];

   for(i=0;i<5;i++)
   {
      if (c[i]  <  min)
         min = c[i];
   }

   {
      printf("Min = %d\n", min);
   }

   return 0;
}


Что я уже пробовал:

Я попытался узнать максимальное и минимальное значение из суммы двух массивов.

1 Ответов

Рейтинг:
2

OriginalGriff

Во-первых, ваше среднее значение не будет работать: вам нужно будет сложить каждое значение вместе, а затем разделить его на количество значений. Ваш код даже не использует цикл, он просто выводит значение элемента за пределы вашего массива сумм:

{
   avg = c[i]/5.0 ;
   printf("\n Average = %.2f'", avg);
}
Вполне возможно, что это предотвращает продолжение кода - так как c[5] это не элемент массива значений, некоторые системы завершат работу вашего приложения с сообщением об ошибке, когда вы попытаетесь его использовать.

Я бы настоятельно рекомендовал вам ознакомиться с отладчиком - как вы его используете, зависит от вашей системы компилятора, но быстрый поиск в Google имени вашей IDE и "отладчика" должен дать вам необходимую информацию.
Поместите точку останова в первую строку функции и запустите код через отладчик. Затем посмотрите на свой код и на свои данные и определите, что должно произойти вручную. Затем по одному шагу в каждой строке проверяйте, что то, что вы ожидали, произойдет именно так, как и произошло. Когда это не так, тогда у вас есть проблема, и вы можете вернуться назад (или запустить ее снова и посмотреть более внимательно), чтобы выяснить, почему.

[редактировать]
О, и перестаньте бросать фигурные скобки там, где они не нужны, и оставлять их там, где они хороши.
Т. е. примерно так:
for(i=0;i<5;i++)
{
   if(c[i]  >  max)
      max = c[i];
}

{
   printf("Max = %d\n", max);
}
И еще больше похоже на это:
for(i=0;i<5;i++)
   {
   if(c[i]  >  max)
      {
      max = c[i];
      }
   }
printf("Max = %d\n", max);

[/редактировать]