Jump to content
Fórum Script Brasil
  • 1

Matriz em ordem inversa


Question

Olá pessoal. Não estou conseguindo resolver um problema em C, vocês podem me dar uma luz? Ficarei muito grato.
Segue abaixo o enunciado.

Faça um programa em C que leia dois valores inteiros, l e c, representando respectivamente a quantidade de linha e colunas de uma matriz. Leia os lxc valores reais e armazene nessa matriz. A leitura deverá ser feita dentro da função “void leMatriz (float matriz[][max], int l, int c)”. Em seguida, desenvolva a função “void imprimeMatriz (float matriz[][max], int l, int c)”, que deverá imprimir a matriz lida na ordem inversa da leitura.

Observações: Seu programa deverá cuidar para que não sejam aceitos valores menores que 1 e maiores que 50 para a quantidade de linhas e de colunas. Defina max igual a 50. A saída deverá ser dada com apenas 1 casa decimal.

Exemplos de Casos de Testes:

case=Teste1

input= 3 4

1     2     3     4

5     6     7     8                    

9     10    11    12

output=

12.0 11.0 10.0 9.0

8.0   7.0   6.0   5.0

4.0   3.0   2.0   1.0

 

case=Teste2

input= 3 3

3     3.1   3.2

4     4.1   4.2

5     5.1   5.2

output=

5.2   5.1   5.0

4.2   4.1   4.0

3.2   3.1   3.0

Link to post
Share on other sites

1 answer to this question

Recommended Posts

  • 0
//Programa: Login
//Função: Ler e imprimir uma matriz inversamente
//Autor: Hazzu#7444
//Data: 17/09/2020

//Cabeçalhos
#include <stdio.h>

//Constantes
#define MAX 50

//Assinatura das funções
void leMatriz(float matriz[][MAX], int l, int c);
void imprimeMatriz(float matriz[][MAX], int l, int c);


//Função principal
int main(){
    //Declaração de variáveis
	int m, n;
	float mat[MAX][MAX];
	
	//Apresentação
	printf("Ola, este programa ira ler e imprimir uma matriz em ordem inversa.\n");
	
	//Obtendo tamanho
	do{
		printf("- Informe o tamanho da matriz no formato mxn (no maximo 50x50):\n");
		scanf("%dx%d", &m, &n);
	} while (m<1 || m>50 || n<1 || n>50);
	
	//Lendo matriz
	leMatriz(mat, m, n);
	
	//Imprimindo matriz
	imprimeMatriz(mat, m, n);
	
    //Encerrando programa
	printf("Obrigado por utilizar o programa!\n");
    return 0;
}


//Função que lê a matriz
void leMatriz(float matriz[][MAX], int l, int c){
	//Variáveis auxiliares
	int i, j;
	
	//Loop de leitura
	for (i=0; i<l; i++){
		for (j=0; j<c; j++){
			printf("Informe o elemento (%d,%d): ", i+1, j+1);
			scanf("%f", &matriz[i][j]);
		}
	}
}

//Função que imprime a matriz em ordem inversa
void imprimeMatriz(float matriz[][MAX], int l, int c){
	//Variáveis auxiliares
	int i, j;
	
	//Loop de impressão
	printf("\n----- MATRIZ INVERTIDA -----\n");
	for (i=l-1; i>=0; i--){
		for (j=c-1; j>=0; j--){
			printf("%.1f\t",  matriz[i][j]);		//Imprimindo com uma casa decimal e tabulação
		}
		printf("\n");	//Quebra de linha
	}
}


image.png.78a17a538f60651ff034c44d24d9de6d.png

Edited by Hazzu
Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Cloud Computing


  • Forum Statistics

    • Total Topics
      148680
    • Total Posts
      644502
×
×
  • Create New...