Don't like ads? PRO users don't see any ads ;-)
Guest

ERRO

By: a guest on May 8th, 2012  |  syntax: None  |  size: 1.69 KB  |  hits: 16  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. /*Nome: Matheus Henrique Toneti
  2.  * RA: 138888
  3.  * Entrada: AS DIMENSÕES DA MATRIZ ( ALTURA E LARGURA)
  4.  * Saída: A MATRIZ REDUZIDA
  5.  * Descrição: O OBJETIVO DO PROGRAMA É RECEBER UMA MATRIZ COM POSSÍVEIS NÚMEROS NULOS (0) E IMPRIMIR SOMENTE A MATRIZ REDUZIDA, OU SEJA, COM OS NÚMEROS NÃO NULOS E SEUS RESPECTIVOS ENDEREÇOS. O RESTO DA MATRIZ( SE HOUVER ) É ZERO.
  6.  */
  7.  #include <stdio.h>
  8.  void read_input(int* matrix , int *h, int *w) /*FUNÇÃO PARA LER A MATRIZ*/
  9.  {
  10.          int i,j;
  11.          scanf("%d%d", &h, &w);
  12.                  
  13.          for(i=0;i<h;i++){
  14.                  for(j=0;j<w;j++){
  15.                          scanf("%d", &*(matrix (h*i)+j));}
  16.                                                 }                                      
  17.         return;
  18. }
  19. void reduce(int *matrix, int h, int w, int *red, int *k) /*FUNÇÃO PARA EFETUAR AS REDUÇÕES NA MATRIZ*/
  20. {
  21.         int i,j;
  22.         for(i=0;i<h;i++){
  23.                  for(j=0;j<w;j++){
  24.                          if(*(matrix (h*i)+j)=!0)
  25.                                 k++;
  26.                         }
  27.                 }
  28.                                
  29.                 for(i=0;i<h;i++){
  30.                  for(j=0;j<w;j++){
  31.                          if(*(matrix (h*i)+j)=!0){             
  32.                          *(red k*i+j) = *(matrix (h*i)+j);
  33.                                 }
  34.                                
  35.                          }
  36.          }
  37.          return;
  38.  }
  39.  void print_red(int *red, int k)/*FUNÇÃO PARA IMPRIMIR A MATRIZ REDUZIDA*/
  40.  {
  41.          int i,j;
  42.          
  43.          for(i=0;i<h;i++){
  44.                  for(j=0;j<w;j++){
  45.                          if(*(red k*i+j)!=0)
  46.                          {printf("%d%d%d",*(red (k*i)+j), i,j);
  47.                          printf("\n");}
  48.                          
  49.                  }
  50.          }
  51.          return;
  52.  }