Advertisement
Guest User

Irio Musskopf

a guest
Jun 4th, 2010
530
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.89 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. int ordem=0, ocupados=0, i;
  4. int *mat_original=NULL;
  5. int *mat_invertida=NULL;
  6.  
  7. int criaMatriz (int tamanho, int *matriz);
  8. int adicionaDado (int dado, int *matriz);
  9. int mostraMatriz (int *matriz);
  10. int somaPrincipal (int *matriz);
  11. /*int inverteMatriz (int *matriz, int *invertida);*/
  12. int limpaMatriz (int *matriz);
  13.  
  14.  
  15.  
  16. int criaMatriz (int tamanho, int *matriz) {
  17.     matriz = malloc (tamanho*tamanho * sizeof(int));
  18.     if (matriz == NULL) {
  19.        printf ("Impossivel alocar memoria para a matriz. Fechando o programa...");
  20.        getchar ();
  21.        exit (1);
  22.     }
  23.     return 0;
  24. }
  25.  
  26.  
  27.  
  28. int adicionaDado (int dado, int *matriz) {
  29.     *(matriz+ocupados) = dado;
  30.     ocupados++;
  31.     return 0;
  32. }
  33.  
  34.  
  35.  
  36. int mostraMatriz (int *matriz) {
  37.     for (i=0; i<(ordem*ordem); i++) {
  38.         printf ("%d \t",*(matriz+i));
  39.         if (((i+1) % ordem)==0)
  40.            printf ("\n");
  41.     }
  42.     getchar ();
  43.     return 0;
  44. }
  45.  
  46.  
  47.  
  48. int somaPrincipal (int *matriz) {
  49.     int posicao, soma=0;
  50.    
  51.     for (posicao=0; posicao<(ordem*ordem); posicao+=ordem+1)
  52.         soma += *(matriz+posicao);
  53.     return soma;
  54. }
  55.  
  56.  
  57.  
  58. /*int inverteMatriz (int *matriz, int *invertida) {
  59.     invertida = NULL;
  60.     criaMatriz (ordem, &invertida);
  61.     for (i=25; i<=(ordem*ordem); i++)
  62.         adicionaDado (i, &invertida);
  63.     return 0;
  64. }*/
  65.  
  66.  
  67.  
  68. int limpaMatriz (int *matriz) {
  69.     int temp;
  70.    
  71.     for (temp=0; temp<(ordem*ordem); temp++)
  72.         free (matriz+temp);
  73.     return 0;
  74. }
  75.  
  76.  
  77.  
  78. int main (void) {
  79.     ordem = 5;
  80.     criaMatriz (ordem, &mat_original);
  81.     for (i=1; i<=(ordem*ordem); i++)
  82.         adicionaDado (i, &mat_original);
  83.     mostraMatriz (&mat_original);
  84.     /*printf ("\n %d \n", somaPrincipal(&mat_original));
  85.     getchar ();*/
  86.     /*inverteMatriz (&mat_original, &mat_invertida);
  87.     mostraMatriz (&mat_invertida);*/
  88.     limpaMatriz (&mat_original);
  89.     return 0;
  90. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement