Guest User

15

a guest
Sep 17th, 2015
167
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 4.29 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <locale.h>
  3. #include <stdlib.h>
  4. #include <time.h>
  5. int main()
  6. {
  7.     srand(time(NULL));
  8.     setlocale (LC_ALL, "Russian");
  9.     int n;
  10.     int *a;
  11.     int count = 0, menu;
  12.     int f, k;
  13.     print("Для начала введите размер массива: ");
  14.     do {
  15.         k = scanf("%d", &n);
  16.         if (k == 1) {
  17.             if (n <= 0) {
  18.                     printf("Размер массива должен быть положительным и не равняться нулю!");
  19.                     printf("Попробуйте снова: ");
  20.                     f = 1;
  21.             }
  22.             else {
  23.                 f = 0;
  24.             }
  25.         }
  26.         else {
  27.             printf("Нужно ввести целое положительное число!");
  28.             printf("Попробуйте снова: ");
  29.             f = 1;
  30.         }
  31.     }
  32.     while (f);
  33.     printf("Меню пользователя: ");
  34.     printf("1. Заполнить массив.");
  35.     printf("2. Обработать массив.");
  36.     printf("3. Вывести массив на экран.");
  37.     printf("4. Выход.");
  38.     do {
  39.         do {
  40.             k = scanf("%d", &menu);
  41.             if (menu == 1) {
  42.                 f=0;
  43.                 if (menu == 4) {
  44.                     return 0;
  45.                 }
  46.             }
  47.             else {
  48.                 print("Ошибка! Введите число, соответстующее пункту меню:");
  49.                 f=1;
  50.             }
  51.         }
  52.         while (f);
  53.         switch (menu) {
  54.             case 1: printf("Введите 1, если хотите заполнить массив самостоятельно.");
  55.                     printf("Иначе, если хотите заполнить массив случайными значениями.");
  56.                     int t;
  57.                     do {
  58.                         k = scanf("%d", &t);
  59.                         if (k == 1) {
  60.                             if (t == 1) {
  61.                                 a = new int[n];
  62.                                 for (int i = 0; i < n; i++) {
  63.                                     scanf("%d", &a[i]);
  64.                                 }
  65.                                 printf("Массив заполнен.");
  66.                                 f=0;
  67.                             }
  68.                             else {
  69.                                 a = new int[n];
  70.                                 for (int i = 0; i < n; i++) {
  71.                                     a[i]=rand();
  72.                                 }
  73.                                 printf("Массив заполнен.");
  74.                                 f=0;
  75.                             }
  76.                         }
  77.                         else {
  78.                             printf("Вводить нужно целые числа.");
  79.                             print("Попробуйте ещё раз: ");
  80.                             f=1;
  81.                         }
  82.                     }
  83.                     while (f);
  84.                     break;
  85.             case 2: printf("Сейчас массив обработается согласно требованиям задачи.");
  86.                     for (int i = 0; i < n; i += 2) {
  87.                         a[i]=0;
  88.                     }
  89.                     for (int i = 0; i < n; i++) {
  90.                         if (a[i] == 0) {
  91.                             count++;
  92.                         }
  93.                     }
  94.                     printf("Массив обработан! Элементы с нечетными позициями заменены на нули.");
  95.                     printf("Количество нулевых элементов: %d", count);
  96.                     break;
  97.             case 3: for (int i = 0; i < n; i++) {
  98.                         printf("a[%d] = %d", i, a[i]);
  99.                     }
  100.                     break;
  101.             case 4: printf("Программа завершена.");
  102.                     break;
  103.             default: printf("Неизвестная ошибка.");
  104.                      print("Попробуйте снова: ");
  105.                      break;
  106.         }
  107.     }
  108.     while (menu != 4);
  109.     delete []a;
  110.     return 0;
  111. }
Advertisement
Add Comment
Please, Sign In to add comment