Не знаю как будет на С++, на С было схожое задание из лабораторной если тебе пойдет на С то попробую переделать, вообщем необходимо было посчитать количество нулевых символов относительно разных диагоналей вот код->
| Код | #include <stdio.h> #include <math.h> #include <stdlib.h>
#define SIZE 5
int main(void) { int Array[SIZE][SIZE]; int i, j, k; int visheG = 0; int nigeG = 0; int visheP = 0; int nigeP = 0;
for( i = 0; i < SIZE; i++) for( j = 0; j < SIZE; j++) Array[i][j] = rand() % 10; Array[0][0] = 0; Array[4][4] = 0; Array[2][0] = 0; Array[4][3] = 0; Array[4][0] = 0;
for( i = 0; i < SIZE; i++) // X < - - for( j = i + 1; j < SIZE; j++) // X X < - if (Array[i][j] == 0) // X X X < visheG ++; // X X X X
for( i = 0; i < SIZE; i++) // X X X X for( j = 0; j < i; j++) // > X X X if (Array[i][j] == 0) // - > X X nigeG ++; // - - > X
for( i = 0; i < SIZE; i++) // - - > X for( j = 0; j < SIZE - i - 1; j++) // - > X X if (Array[i][j] == 0) // > X X X visheP ++; // X X X X
for( i = 0; i < SIZE; i++) // X X X X for( j = SIZE - i; j < SIZE; j++) // X X X < if (Array[i][j] == 0) // X X < - nigeP ++; // X < - -
for( i = 0; i < SIZE; i++) { for( j = 0; j < SIZE; j++) printf(" %d ", Array[i][j]); printf("\n\r"); } printf("Higher main diagonal: %d \n\r",visheG); printf("Lower main diagonal: %d \n\r",nigeG); printf("Higher secondary diagonal: %d \n\r",visheP); printf("Lower secondary diagonal: %d \n\r",nigeP); return 1; }
|
|