Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Trabalhando com ponteiros para alocação ou declaração dinâmica de matrizes
- Método 2: Vetor de ponteiros de linhas separadas (2d)
- */
- #include <stdio.h>
- #include <stdlib.h>
- void leMatriz(float **mat, int m, int n);
- void imprimeMatriz(float **mat, int m, int n);
- int main() {
- int m, n;
- printf("Matrizes com ponteiros duplos:\n Ler e imprimir Matriz\n\nInforme a qtde de linhas e colunas da Matriz: ");
- scanf("%d %d", &m, &n);
- float **mat;
- // aloca um vetor de m ponteiros para linhas
- mat = malloc (m * sizeof(int*));
- // aloca cada uma das linhas (vetores de n floats)
- for(int i=0; i<m; i++)
- mat[i] = malloc (n * sizeof(float));
- printf("\nPreencha os dados da matriz: \n");
- leMatriz(mat, m, n);
- printf("\n\nDados da matriz: \n");
- imprimeMatriz(mat, m, n);
- free(mat);
- return 0;
- }
- void leMatriz(float **mat, int m, int n) {
- for(int i=0; i<m; i++)
- for(int j=0; j<n; j++) {
- printf(" m[%d][%d]: ", i, j);
- scanf("%f", &mat[i][j]);
- }
- }
- void imprimeMatriz(float **mat, int m, int n) {
- for(int i=0; i<m; i++) {
- for(int j=0; j<n; j++)
- printf(" %.2f", mat[i][j]);
- printf("\n");
- }
- printf("\n");
- }
- /*
- Exemplos de entradas:
- 2 3 11 12 13 21 22 23
- 4 4 11 12 13 14 21 22 23 24 31 32 33 34 41 42 43 44
- 7 2 11 12 21 22 31 32 41 42 51 52 61 62 71 72
- 2 9 11 12 13 14 15 16 17 18 19 21 22 23 24 25 26 27 28 29
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement