Ir ao conteúdo

Posts recomendados

Postado

Como fazer esse codigo imprimir a matriz no formato de matriz mesmo 

 #include <stdio.h>

int main(void){

	int A[3][3], B[3][3], C[3][3];
	int i, j;
/** le a matriz A */

	for(i = 0; i < 3; i++){
 		for(j = 0; j < 3; j++){
  			printf("A(%i,%i) = ", i, j);
  			scanf("%i", &A[i][j]);
		}
	}

/** le a matriz B */

	for(i = 0; i < 3; i++){
 		for(j = 0; j < 3; j++){
  			printf("B(%i,%i) = ", i, j);
  			scanf("%i", &B[i][j]);
		}
	}

/* compara as matrizes A e B

   e preenche a matriz C com o maior */

	for(i = 0; i < 3; i++){
 		for(j = 0; j < 3; j++){
  			if(A[i][j] >= B[i][j]){
				C[i][j] = A[i][j];
			}else{
				C[i][j] = B[i][j];
			}
		}
	}

	for(i = 0; i < 3; i++){
		for(j = 0; j < 3; j++){
			printf("C(%i,%i) = %i\n", i, j, C[i][j]);
		}
	}

	return 0;

}

 

Postado

escreva em torno dos dados. É o simples.

 

uma função para ler uma matriz 3x3 [1]

uma função para mostrar na tela uma matriz 3x3 [2]

uma função para somar duas matrizes 3x3 [3]

 

  • chame [1] para ler a matriz 1
  • chame [2] para mostrar a matriz 1
  • chame [1] para ler a matriz 2
  • chame [2] para mostrar a matriz 2
  • chame [3] para somar as matrizes 1 e 2 na matriz 3
  • chame [2] para mostrar a matriz 3
  • 🍺

 

 

Postado
3 minutos atrás, Lavínia dos Santos Souza disse:

Em qual parte do codigo ? desculpa essa pergunta 

 

:) na função 2 ??

 

faça o simples. Não duplique códigos. vai ler 2 vezes, mostrar 3 vezes

 

EXEMPLO

 

int         le_matriz( int[3][3]); // [1] le uma
int         mostra_matriz( int[3][3]); // mostra uma
int         soma_ab_em_c( int[3][3],int[3][3],int[3][3]); // soma a e b em c

int main(void)
{
    int     A[3][3]; 
    int     B[3][3];
    int     C[3][3]; // A matriz resultante

    le_matriz(A);
    mostra_matriz(A); // le e mostra a primeira

    le_matriz(B);
    mostra_matriz(B); // le e mostra a segunda
  
    soma_ab_em_c( A,B,C );
    mostra_matriz(C); // soma as duas e mostr o resultado
  
    return 0; // pede uma pizza ou faz outra coisa
};

int         le_matriz( int M[3][3]){ return 0;}; // [1] le uma
int         mostra_matriz( int M[3][3]){ return 0;}; // [2] mostra uma
int         soma_ab_em_c( int A[3][3],int B[3][3],int C[3][3]){ return 0;}; // [3] soma a e b em c

 

funções são apenas blocos de código com um nominho e argumentos.

 

Postado

@Lavínia dos Santos Souza Pode ser depois de completar o vetor C, mas acho que fica melhor se colocar em uma função, aí é só passar a matriz como argumento no fim do programa, p.ex,

 

void imprime(int matriz[3][3]){
    for(int i = 0; i < 3; i += 1){
        for(int j = 0; j < 3; j += 1){
            printf(" %d",matriz[i][j]);
        }
        printf("\n");
    }
}

 

E em main,

printf("Matriz A:\n");    
imprime(A);
printf("Matriz B:\n");
imprime(B);
printf("Matriz C:\n");
imprime(C);

 

Postado
23 minutos atrás, Midori disse:

Pode ser depois de completar o vetor C, mas acho que fica melhor se colocar em uma função, aí é só passar a matriz como argumento no fim do programa, p.ex, (#6)

 

Pois é. Como eu disse no #2 e mostrei num programa compilável no #5...

 

Aproveitando seu exemplo e colocando em um contexto pode ajudar outros a entender porque se faz isso na prática:
 

A função imprime() como @Midoriescreveu

 

void imprime(int matriz[3][3]){
    for(int i = 0; i < 3; i += 1){
        for(int j = 0; j < 3; j += 1){
            printf(" %d",matriz[i][j]);
        }
        printf("\n");
    }
}

 

E o código do exemplo em #6 
 

printf("Matriz A:\n");    
imprime(A);
printf("Matriz B:\n");
imprime(B);
printf("Matriz C:\n");
imprime(C);

 

É o mesmo que acontece na rotina de leitura proposta no início: diferem por uma constante que podia ser então um parâmetro...

 

O programa abaixo usa esse código e mostra
 

Matriz A
 1 2 3
 4 5 6
 7 8 9

Matriz B
 1 2 3
 4 5 6
 7 8 9

 1 2 3
 4 5 6
 7 8 9

 

O programa

 

#include <stdio.h>
void imprime(int[3][3],const char*); // prototipo para o compilador entender
int main(void)
{
	int     A[3][3] = 
    {   { 1,2,3 },
        { 4,5,6 },
        { 7,8,9 }
    }; 

    imprime(A,"Matriz A");
    imprime(A,"Matriz B");
    imprime(A,NULL);
    return 0;
};

void imprime(int matriz[3][3], const char* titulo)
{
    printf("\n");
    if ( titulo != NULL ) printf( "%s\n", titulo );
    for(int i = 0; i < 3; i += 1){
        for(int j = 0; j < 3; j += 1){
            printf(" %d",matriz[i][j]);
        }
        printf("\n");
    }
}

 

E a mensagem passa para dentro da função e main() fica mais simples. Faça a mesma coisa na leitura passando o prompt.

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...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!