niromru

task-5

Nov 18th, 2022
915
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.96 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <locale.h>
  4.  
  5. int main()
  6. {
  7.     setlocale(LC_ALL, "rus");
  8.     int M = 0, N = 0, P = 0;
  9.     int i = 0, j = 0, k = 0;
  10.     char isFound = 0;
  11.     int count = 0;
  12.     printf("Задайте размеры параллелепипеда в формате 1x1x1: ");
  13.     scanf("%dx%dx%d", &M, &N, &P);
  14.     int*** A = calloc(M, sizeof(int**));
  15.     for (i = 0; i < M; i++) {
  16.         A[i] = calloc(N, sizeof(int*));
  17.         for (j = 0; j < N; j++)
  18.             A[i][j] = calloc(P, sizeof(int));
  19.     }
  20.     for (i = 0; i < M; i++)
  21.         for (j = 0; j < N; j++)
  22.             for (k = 0; k < P; k++) {
  23.                 printf("(%d;%d;%d): ", i, j, k);
  24.                 scanf("%d", &A[i][j][k]);
  25.             }
  26.  
  27.     for (i = 0; i < M; i++) {
  28.         isFound = 1;
  29.         for (j = 0; j < N && isFound != 0; j++) {
  30.             for (k = 0; k < N && isFound != 0; k++) {
  31.                 if (A[i][j][k] != A[i][0][0]) {
  32.                     isFound = 0;
  33.                     break;
  34.                 }
  35.             }
  36.         }
  37.         if (isFound == 1)
  38.             count++;
  39.     }
  40.     for (j = 0; j < N; j++) {
  41.         isFound = 1;
  42.         for (i = 0; i < N && isFound != 0; i++) {
  43.             for (k = 0; k < N && isFound != 0; k++) {
  44.                 if (A[i][j][k] != A[0][j][0])
  45.                     isFound = 0;
  46.             }
  47.         }
  48.         if (isFound == 1)
  49.             count++;
  50.     }
  51.     for (k = 0; k < P; k++) {
  52.         isFound = 1;
  53.         for (i = 0; i < M && isFound != 0; i++) {
  54.             for (j = 0; j < N && isFound != 0; j++) {
  55.                 if (A[i][j][k] != A[0][0][k])
  56.                     isFound = 0;
  57.             }
  58.         }
  59.         if (isFound == 1)
  60.             count++;
  61.     }
  62.  
  63.     for (i = 0; i < M; i++) {
  64.         for (j = 0; j < N; j++)
  65.             free(A[i][j]);
  66.         free(A[i]);
  67.     }
  68.     free(A);
  69.  
  70.     printf("Найдено искомых слоев: %d", count);
  71.     return 0;
  72. }
  73.  
Advertisement
Add Comment
Please, Sign In to add comment