Advertisement
drochun

LIBA 5 z2

Dec 12th, 2021
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.26 KB | None | 0 0
  1. //Вариант 8 задание №2, Гринкевич, 12.12.2021
  2.  
  3. //В двумерном массиве натуральных чисел занулить четные числа, стоящие в чётных столбцах (нумерация начинается с 0).
  4.  
  5.  
  6. #define _CRT_SECURE_NO_WARNINGS
  7. #include <stdio.h>
  8. #include <locale.h>
  9. int main()
  10. {
  11.     setlocale(LC_ALL, "Rus");
  12.     int sizeofarray;
  13.     int** array;
  14.     printf("Введите размерность массива:");
  15.     scanf("%d", &sizeofarray);
  16.     array = (int**)malloc(sizeofarray * sizeof(int*));
  17.     for (size_t i = 0; i < sizeofarray; i++) // цикл с 0 эл. массива по последний
  18.     {
  19.         array[i] = (int*)malloc(sizeofarray * sizeof(int*));
  20.     }
  21.     random_input(array, sizeofarray);
  22.     printf("\n\n\n");
  23.     output(array, sizeofarray);
  24.  
  25.     master(array, sizeofarray);
  26.     printf("\n\n\n");
  27.     output(array, sizeofarray);
  28.  
  29.     repeat();
  30.     return 0;
  31. }
  32.  
  33. int random_input(int** array, int sizeofarray)
  34. {
  35.     for (size_t i = 0; i < sizeofarray; i++)
  36.     {
  37.         for (size_t j = 0; j < sizeofarray; j++)
  38.         {
  39.             array[i][j] = rand() % 100; // заполняем массив случайными числами
  40.         }
  41.     }
  42. }
  43.  
  44. int master(int** array, int sizeofarray)
  45. {
  46.     for (size_t i = 0; i < sizeofarray; i++)
  47.     {
  48.         for (size_t j = 0; j < sizeofarray; j++)
  49.         {
  50.             if (j % 2 == 0 && j != 0) //выполнять если столбец четный и не нуль(не является четным)
  51.             {
  52.                 if (array[i][j] % 2 == 0) // если эллемент массива при делении даёт ноль
  53.                 {
  54.                     array[i][j] = 0;
  55.                 }
  56.  
  57.             }
  58.         }
  59.     }
  60. }
  61.  
  62. int output(int** array, int sizeofarray)
  63. {
  64.     for (size_t i = 0; i < sizeofarray; i++)
  65.     {
  66.         for (size_t j = 0; j < sizeofarray; j++)
  67.         {
  68.             printf("%2d ", array[i][j]);
  69.         }
  70.         printf("\n");
  71.     }
  72. }
  73.  
  74. int repeat(void)
  75.  
  76. {
  77.     char key;
  78.     int prov = 0;
  79.     printf("\nПовторить выполнение программы? (y/n)");
  80.     while (prov == 0)
  81.     {
  82.         rewind(stdin);
  83.         prov = scanf("%c", &key);
  84.         if (key == 'y') main();
  85.         if (key == 'n')
  86.         {
  87.             printf("\nПрограмма завершена!");
  88.             exit(0);
  89.         }
  90.         printf("\nВы должны написать 'y'(да) или 'n'(нет)");
  91.         prov = 0;
  92.     }
  93. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement