Advertisement
Guest User

Untitled

a guest
Nov 9th, 2015
136
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.72 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <locale.h>
  4. #include <math.h>
  5. #define N 18 //(константа)количество элементов в массиве
  6.  
  7. int main()
  8. {
  9.     float mas[N]; //массив
  10.     float proizv = 1; //произведение
  11.     float min, max; //макс. и мин. значения
  12.     float kvadrat; //возведение в квадрат
  13.     float temp; //временная переменная
  14.     int imin, imax; //индексы макс. и мин. значений
  15.     int i, j, p, k; //дополнительные индексы
  16.     char otv; //ответ
  17.  
  18.     setlocale(LC_ALL,"");
  19.  
  20.     //  ПРИВЕТСТВИЕ
  21.     printf(" Здравствуйте! Вас приветствует программа, \n которая обрабатывает элементы массива.\n");
  22.  
  23.     do {
  24.         //обновляем массив
  25.         for(i = 0; i < N; i++){
  26.             mas[i] = 0;
  27.         }
  28.         // ВВОД МАССИВА
  29.         printf(" Введите значения 18-ти элементов массива:\n");
  30.  
  31.         for(i = 0; i < N; i++){
  32.             printf(" %d-й элемент: ", i);
  33.             scanf(" %f", &mas[i]);
  34.         }
  35.  
  36.         // НАХОДИМ ПРОИЗВЕДЕНИЕ
  37.         for(i = 0; i < N; i++){
  38.             if(mas[i] != 0){
  39.                 if(i % 3 == 0){
  40.                     proizv *= mas[i];
  41.                 }
  42.             }
  43.         }
  44.         printf("\n 1) Произведение (ненулевых) элементов массива, \n находящихся на  позициях, кратных числу 3 равна %.f!", proizv);
  45.  
  46.         // МАКС. И МИН. ЗНАЧЕНИЯ, КВАДРАТЫ ЭЛЕМЕНТОВ МЕЖДУ НИМИ
  47.         min = mas[0];
  48.         max = min;
  49.         for (i = 0; i < N; ++i) {
  50.           if (mas[i] > max){
  51.                 max = mas[i];
  52.                 imax = i;
  53.           }
  54.           if (mas[i] < min){
  55.                 min = mas[i];
  56.                 imin = i;
  57.           }
  58.         }
  59.  
  60.         printf("\n 2) Минимальное значение: %.2f", min);
  61.         printf("\n Максимальное значение: %.2f", max);
  62.         printf("\n Квадраты всех чисел, расположенных между минимальным и \n максимальным значениями равны:");
  63.  
  64.         if(imax < imin){
  65.                 for(p = imax; p <= imin; p++){
  66.                         kvadrat = pow(mas[p], 2);
  67.                         printf(" Квадрат: %.f", kvadrat);
  68.                 }
  69.         }
  70.         else {
  71.                 for(k = imin; k <= imax; k++){
  72.                     kvadrat = pow(mas[k], 2);
  73.                     printf("\n Квадрат: %.f", kvadrat);
  74.                 }
  75.         }
  76.         // ПО ВОЗРАСТАНИЮ
  77.         for (i = 0; i < N - 1; i++){
  78.             for (j = 0; j < N - 1; j++){
  79.                     if (j % 3 != 0){
  80.                             if (mas[j] > mas[j + 1]){
  81.                                 temp = mas[j];
  82.                                 mas[j] = mas[j + 1];
  83.                                 mas[j + 1] = temp;
  84.                             }
  85.                     }
  86.                 }
  87.             }
  88.         printf("\n 3) Упорядоченные по возрастанию элементы, находящиеся на местах, \n не кратных числу 3: \n ");
  89.         for (i = 0; i < N; i++){
  90.                 printf("%.f ", mas[i]);
  91.             }
  92.         // повторить?
  93.         printf("\n Хотите повторить все сначала?(y/n)");
  94.         scanf(" %c", &otv);
  95.         printf("\n");
  96.  
  97.     } while(otv == 'y');
  98.  
  99.     return 0;
  100. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement