Saturday, January 9, 2016

21) Transformarea unei matrice triunghiulara inferior intr-una triunghiulara superior

//o matrice este triunghiular inferioara daca toate elementele de sub diagonala principala sunt egale cu 0

  


#include <stdio.h>
#include <stdlib.h>

int k;

int triunghiulara(int a[20][20], int n, int m) {
    int i,j, tri=0;
    k=1;
    for(i=0;i<n;i++) {
        for(j=i+1;j<m;j++) {
            if(a[i][j]!=0) {
                k=0;
            }
        }
    }

    if(k!=0){
        tri=1;}
    return tri;
}

void triunghiularaSuperior(int a[20][20], int n, int m) {
    int i,j;
    for(i=1;i<n;i++) {
        for(j=0;j<i;j++) {
            a[i][j] = 0;
        }
    }

}

int main() {
    int a[20][20];
    int i,j,n,m, tri=0;
    printf("Linii: "); scanf("%d", &n);
    printf("Coloane: "); scanf("%d", &m);
    for(i=0;i<n;i++) {
        for(j=0;j<m;j++) {
            printf("a[%d][%d] = ",i,j); scanf("%d", &a[i][j]);
        }
    }
    puts("Afisare matrice... \n");
    for(i=0;i<n;i++) {
        for(j=0;j<m;j++) {
            printf(" %d ", a[i][j]);
        }
        puts(" ");
    }
    puts(" ");
    tri = triunghiulara(a,n,m);


    if(tri==1) {
        puts("Matricea este triunghiulara inferior \n -----> Transformare in matrice triunghiulara superior... \n");
        triunghiularaSuperior(a, n, m);
        puts("Afisare matrice triunghiulara superior & inferior \n");

        for(i=0;i<n;i++) {
            for(j=0;j<m;j++) {
                printf(" %d ", a[i][j]);
            }
            puts(" ");
        }

    }

}







No comments:

Post a Comment