Ir ao conteúdo
  • Cadastre-se

C Matriz de ordem n separando valores do triangulo superior e inferior


Ivander

Posts recomendados

Boa tarde, desde já, aviso que sou iniciante.
estou com uma dúvida.
escrevi todo o código utilizando funções.
o programa roda, realiza a leitura de cada elemento da matriz, porém na hora de printar a separação dos elementos do triangulo superior e inferior; não printa nada.

segue o algoritmo.

<

#include<stdio.h>
#include<conio.h>

/*Funcao que faz a leitura da dimensao e dos elementos de uma matriz*/
void leitura(int *n, int matriz[100][100]){
     int i, j; /*Declaracao de variaveis*/
     
     printf("Digite a dimensao da matriz quadrada: ");
     scanf("%d", n); /*Leitura da dimensao*/
     
     printf("Digite os elementos da matriz[%d][%d]:\n", *n,*n);
     for(i = 0; i < *n; i++){
           for(j = 0; j < *n; j++)
                scanf("%d", &matriz[j]); /*Leitura dos elementos*/
     }
}

/*Funcao que separa valores da matriz tringular superior   ---  i<j*/
void triangularsuperior(int matriz[100][100]){
     int *n, i, j; /*Declaracao de variaveis*/
     
     for(i = 0; i < j; i++){
           for(j = 0; j < *n; j++)
                printf("matriz triangular superior : [%d][%d]", i,j); /*Separação valores pertencentes a matriz superior*/
     }
}

/*Funcao que separa valores da matriz tringular inferior   ---  i>j*/
void triangularinferior(int matriz[100][100]){
     int *n, i, j; /*Declaracao de variaveis*/
     
     for(i = 0; i > j; i++){
           for(j = 0; j < *n; j++)
                printf("matriz triangular superior : [%d][%d]", i,j); /*Separação valores pertencentes a matriz inferior*/
     }
}


int main(){
    
    int matriz[100][100], n; /*Declaracao de variaveis*/
    
    leitura(&n, matriz); /*Chama a funcao que le a matriz*/
    triangularsuperior(matriz);
    triangularinferior(matriz);
    
    return 0;
}

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

@Ivander      para postar seu código é melhor usar o botão   <>  que está lá na barra de ferramentas da janela de postar pois senão seu código fica faltando alguns caracteres como os [ i ] que sumiram do seu código ,  e seu código não está imprimindo nada por que você se esqueceu de colocar para imprimir o que está a matriz ali na linha 24 e 34 , então precisaria ser assim  :

printf("matriz triangular superior : [%d][%d] = %d\n", i,j,matriz[i][j]); /*Separação valores pertencentes a matriz superior*/

então seu código pode ser assim:

#include<stdio.h>
#include<conio.h>
#include<windows.h>
/*             0     1    2     3   4      5      6      7         8  */
typedef enum{BLACK,BLUE,GREEN,CYAN,RED,MAGENTA,BROWN,LIGHTGRAY,DARKGRAY,   /* nome das cores */
LIGHTBLUE,LIGHTGREEN,LIGHTCYAN,LIGHTRED,LIGHTMAGENTA,YELLOW,WHITE} COLORS;
/*  9         10         11        12        13         14    15 */

static int __BACKGROUND = 1/*BLACK*/;/*pode ser o numero ou o nome da cor*/
static int __FOREGROUND = LIGHTGRAY;

void textcolor (int letras, int fundo){/*para mudar a cor de fundo mude o background*/
    __FOREGROUND = letras;
    __BACKGROUND = fundo;
    SetConsoleTextAttribute (GetStdHandle (STD_OUTPUT_HANDLE),
    letras + (__BACKGROUND << 4));
}
void gotoxy(int x, int y){/*imprimir na linha e coluna desejada */
  COORD c;
  c.X = x;
  c.Y = y;
  SetConsoleCursorPosition (GetStdHandle(STD_OUTPUT_HANDLE), c);
}
/*Funcao que faz a leitura da dimensao e dos elementos de uma matriz*/
void leitura(int n, int matriz[100][100]){
     int i,cont,j; /*Declaracao de variaveis*/

     printf("Digite a dimensao da matriz quadrada: ");
     scanf("%d",&n); /*Leitura da dimensao*/

     printf("Digite os elementos da matriz[%d][%d]:\n",n,n);
     for(i=0; i<n; i++){
        for(j=0; j<n; j++){
            printf("%d %d Numero ",i,j);
            scanf("%d",&matriz[i][j]); /*Leitura dos elementos*/
        }
    }
    printf("A matriz:\n\n");
    for(i=0;i<n;i++){
        for(j=0;j<n;j++){
            if(i<j )textcolor(00,11);/* preto e azul celeste  */
            if(i>j )textcolor(00,11);/* preto e azul celeste  */
            if(i==j)textcolor(12,14);/* vermelho e amarelo    */
            printf("%3d ",matriz[i][j]);
        }
        printf("\n");
    }
    printf("\n");
    textcolor(7,0);
}

/*Funcao que separa valores da matriz tringular superior   ---  i<j*/
void triangularsuperior(int matriz[100][100]){
    int *n, i, j; /*Declaracao de variaveis*/
    printf("\n");
    for(i=0; i<100; i++){
        for(j=0; j<100; j++){
            if(matriz[i][j]!=0 && i<j )
                printf("matriz triangular superior : [%d][%d] = %d\n",
                i,j,matriz[i][j]); /*Separação valores pertencentes a matriz superior*/
        }
    }
}

/*Funcao que separa valores da matriz tringular inferior   ---  i>j*/
void triangularinferior(int matriz[100][100]){
    int *n, i, j; /*Declaracao de variaveis*/
    printf("\n");
    for(i=0; i<100; i++){
        for(j=0; j<100; j++){
            if(matriz[i][j]!=0 && i>j )
                printf("matriz triangular superior : [%d][%d] = %d\n",
                i,j,matriz[i][j]); /*Separação valores pertencentes a matriz inferior*/
        }
    }
}

void diagonalprincipal(int matriz[100][100]){
    int *n, i, j; /*Declaracao de variaveis*/
    printf("\n");
    for(i=0; i<100; i++){
        for(j=0; j<100; j++){
            if(matriz[i][j]!=0 && i==j )
                printf("matriz diagonal principal : [%d][%d] = %d\n",
                i,j,matriz[i][j]); /*Separação valores pertencentes a matriz inferior*/
        }
    }
}

int main(){

    int matriz[100][100],i,j,n; /*Declaracao de variaveis*/
    for(i=0;i<100;i++)/* zerando os elementos da matriz */
        for(j=0;j<100;j++)
            matriz[i][j]=0;
    leitura(n,matriz); /*Chama a funcao que le a matriz*/
    triangularsuperior(matriz);
    triangularinferior(matriz);
    diagonalprincipal (matriz);
    gotoxy(79,18);
    getch();
    return 0;
}

 

  • Curtir 1
  • Amei 1
Link para o comentário
Compartilhar em outros sites

  • 9 meses depois...

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!