/* Autor: RONAN Alves da Paixão - 1° Ten - 2°ano CG 2007 * Ler uma matriz 3x4 de inteiros * imprimir -posição e valor do maior valor lido * -posição e valor do menor valor lido * -média dos valores lidos e * -a transposta * * o) fazer uma funcao para os 3 primeiros e outra para o 4o item * */#include <stdio.h>#include <conio.h> /* Biblioteca para kbhit() */void scan_matriz(int* matriz, int x, int y){ // Solicita o preenchimento da matriz pelo usuário int i, j; for (i = 0; i < y; i++) { for (j = 0; j < x; j++) { printf("Insira o valor [%i][%i]", i+1, j+1); scanf("%i", &matriz[i*x + j]); } }}void print_matriz(int *matriz, int x, int y){ // Imprime uma matriz formatada printf("Matriz[%i][%i]:\n", x, y); int i, j; for (i = 0; i < y; i++) { printf("["); for (j = 0; j < x; j++) { printf(" %3i ", matriz[i*x + j]); } printf("]\n"); }}void calculo(int *matriz, int x, int y){ // Calcula o maior e menor numeros (com posições) e a media int i, j; int posMaior[2], posMenor[2], maior, menor, soma = 0; posMaior[0] = posMaior[1] = posMenor[0] = posMenor[1] = 1; maior = menor = matriz[0]; for (i = 0; i < y; i++) { for (j = 0; j < x; j++) { if (matriz[i*x + j]>maior){ posMaior[0] = i+1; posMaior[1] = j+1; maior = matriz[i*x + j]; } if (matriz[i*x + j]<menor){ posMenor[0] = i+1; posMenor[1] = j+1; menor = matriz[i*x + j]; } soma += matriz[i*x + j]; } } printf("Maior: %i em %ix%i\n", maior, posMaior[0], posMaior[1]); printf("Menor: %i em %ix%i\n", menor, posMenor[0], posMenor[1]); printf("Media: %f\n", (float)soma/(x*y));}void transposta(int *matriz, int *matrizt, int x, int y){ int i, j; for (i = 0; i < x; i++) { for (j = 0; j < y; j++) { matrizt[i*y+j]=matriz[j*x+i]; } }}int main(void){ int y = 3; // tamanho vertical int x = 4; // tamanho horizontal int matriz[x*y]; scan_matriz(matriz, x, y); print_matriz(matriz, x, y); calculo(matriz, x, y); int matrizt[y*x]; transposta(matriz, matrizt, x, y); print_matriz(matrizt, y, x); calculo(matrizt, y, x);i while(!kbhit()); /* Gera uma pausa ate que o usuario pressione qualquer tecla.*/ return 0;}