Сборник задач. C
[Download]
om_5.html

       
 1     /*
         1.
         В одномерном массиве, состоящем из N различных вещественных
         элементов, вычислить:
           1) максимальный по модулю элемент массива;
           2) сумму элементов массива, расположенных между первым и
              вторым положительными элементами.

         Виталий Мельник & MSP,
         2 курс, АС-208,
         18.10.09, 13:16
       */

 14    # include <stdio.h>
 15    # include <conio.h>
 16    # include <math.h>

 18    # define R 100 // максимальный размер массива

 20    int main ()
 21    {
 22      float
 23        S, // сумма элементов, расположенных между первым и вторым
 24           // положительными элементами
 25        max, //  максимальный по модулю
 26        A [R];

 28      int
 29        P, // счетчик положительных элементов
 30        first, // индекс первого положительного числа
 31        second, // индекс второго положительного числа
 32        i, // индекс массива
 33        L; // размер массива

 35      clrscr ();

 37      printf ("Введите размер массива: ");
 38      scanf ("%i", & L);

 40      // заполним массив с клавиатуры
 41      for (i = 0; i < L; i ++)
 42      {
 43        printf ("e [%i] = ", i);
 44        scanf ("%f", & A [i]);
 45        fflush (stdin);
 46      }

 48      // найдем максимальный модуль
 49      max = fabs (A [0]);
 50      for (i = 1; i < L; i ++)
 51        if (fabs (A [i]) > max)
 52          max = fabs (A [i]);

 54      printf ("\nМаксимальный по модулю: %.2f\n", max);

 56      printf ("\nЭлементы массива, значение которых максимально"
 57             " по модулю:\n");
 58      for (i = 0; i < L; i ++)
 59        if (fabs (A [i]) == max)
 60          printf ("%.2f  ", A [i]);

 62      // найдем индексы первого и второго положительного элементов
 63      P = 0;
 64      first = second = - 1;
 65      for (i = 0; i < L; i ++)
 66        if (A [i] > 0)
 67        {
 68          ++ P;

 70          if (P == 1)
 71            first = i;

 73          if (P == 2)
 74          {
 75            second = i;
 76            break;
 77          }
 78        }

 80      if (
 81           first == -1
 82           ||
 83           second == -1
 84         )
 85      {
 86        printf ("\nНет положительных...\n");

 88        getch ();
 89        return 1;
 90      }


 93      // найдем сумму элементов массива, расположенных между первым и
 94      // вторым положительными элементами
 95      S = 0.0;
 96      for (i = first + 1; i <= second - 1; ++ i)
 97        S = S + A [i];

 99      printf ("\nСумма элементов равна %.2f\n", S);

 101     getch ();
 102     return 0;
 103   }



     
Web-листинг с сайта http://www.Best-Listing.ru
Автор решения: Виталий Мельник Кто подготовил код к публикации: Sergey Mitrofanov
Дата записи в базу данных: 27-09-2017 Время записи в базу данных: 11:04:11
Просмотров: 7 Download: 3
om_5.html
[Download]

Сборник задач. C
Valid XHTML 1.0 Transitional Valid CSS

Copyright © www.Best-Listing.ru, 2006–2018