Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Матрица Problem
- Од стандарден влез се читаат димензии на квадратна матрица (макс 100х100) која е составена од целобројни елементи.
- Во продолжение се читаат сите елементи од матрицата соодветно.
- Да се состави нова матрицаво која секој елемент од главната дијагонала ќе биде заменет со сумата на сите елементи од
- истиот ред десно од елементот и елементите кои се во истата колона над елементот.
- Исто така потребно е секој елемент од споредната дијагонала да се замени со сумата на елементи од иститот ред пред
- елементот и елементите кои се во истата колона под елементот.
- Доколку нема соодветни елементи, потребно е елементот да се постави на 0.
- Доколку некој елемент се наоѓа и на главна и на споредна дијагонала, потребно е двете суми да се сумираат.
- Елементите кои не се наоѓаат на некоја од дијагоналите не треба да се променат.
- Пример:
- За дадената матрица Аn,n:
- 1 2 3
- 4 5 6
- 7 8 9
- Резултат:
- 5 2 18
- 4 20 6
- 0 8 9
- */
- #include <stdio.h>
- #include <stdlib.h>
- int sumaGlavnaDijagonala(int I, int N, int niza[100][100]) {
- int i = I-1, j = I, sum = 0;
- for(; i >= 0; --i) {
- sum += niza[i][j];
- }
- for(j = I+1, i = I; j < N; ++j) {
- sum += niza[i][j];
- }
- return sum;
- }
- int sumaSporednaDijagonala(int I, int N, int niza[100][100]) {
- int i = I+1, j = N-I-1, sum = 0;
- for(; i < N; ++i) {
- sum += niza[i][j];
- }
- for(j = N-I-2, i = I; j >= 0; --j) {
- sum += niza[i][j];
- }
- return sum;
- }
- int main()
- {
- int n,i,j;
- scanf("%d", &n);
- int matr[100][100], finalMatr[100][100];
- for(i = 0; i < n; ++i) {
- for(j = 0; j < n; ++j){
- scanf("%d", &matr[i][j]);
- }
- }
- for(i = 0; i < n; ++i) {
- for(j = 0; j < n; ++j){
- if( i == j && j == n-i-1 ) {
- finalMatr[i][j] = sumaGlavnaDijagonala(i, n, matr) + sumaSporednaDijagonala(i, n, matr);
- } else if( i == j ) {
- finalMatr[i][j] = sumaGlavnaDijagonala(i, n, matr);
- } else if( j == n-i-1 ) {
- finalMatr[i][j] = sumaSporednaDijagonala(i, n, matr);
- } else {
- finalMatr[i][j] = matr[i][j];
- }
- }
- }
- printf("\n");
- for(i = 0; i < n; ++i) {
- for(j = 0; j < n; ++j){
- printf("%d ", finalMatr[i][j]);
- }
- printf("\n");
- }
- return 0;
- }
Add Comment
Please, Sign In to add comment