Advertisement
Guest User

Untitled

a guest
Sep 21st, 2017
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.14 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. #define MAX 100
  4.  
  5. #define OPCAO_OBTER_MENOR   1
  6. #define OPCAO_OBTER_MAIOR   2
  7. #define OPCAO_OBTER_SOMA    3
  8. #define OPCAO_NOVA_MATRIZ   4
  9. #define OPCAO_SAIR          5
  10.  
  11. int menor = 10000, maior = 0 ;
  12. int vetor[2500];
  13. int m, n;
  14. int matriz[MAX][MAX];
  15.  
  16. int obter_menor(int i);
  17. int obter_maior(int i);
  18. int obter_soma(int i);
  19. void gambiarra();
  20.  
  21. int main() {
  22.     int i, j, opcao, nova_matriz;
  23.    
  24.     while (scanf("%d %d", &m, &n) > 0 && m > 0 && n > 0) {
  25.         for (i = 0; i < n; ++i) {
  26.             for (j = 0; j < m; ++j)
  27.                 scanf("%d", &matriz[i][j]);
  28.         }
  29.        
  30.         nova_matriz = 0;
  31.         while (!nova_matriz && scanf("%d", &opcao) > 0) {
  32.             switch(opcao) {
  33.             case OPCAO_OBTER_MENOR:
  34.                 printf("%d\n", obter_menor(0));
  35.                 break;  
  36.             case OPCAO_OBTER_MAIOR:
  37.                 printf("%d\n", obter_maior(0));
  38.                 break;
  39.             case OPCAO_OBTER_SOMA:
  40.                 printf("%d\n", obter_soma(0));
  41.                 break;
  42.             case OPCAO_NOVA_MATRIZ:
  43.                 nova_matriz = 1;
  44.                 gambiarra();
  45.                 maior = vetor[0];
  46.                 menor = vetor[0];
  47.                 break;
  48.             case OPCAO_SAIR:
  49.                 return 0;
  50.             }
  51.         }
  52.     }
  53.    
  54.     return (0);
  55. }
  56.  
  57. int obter_menor(int i) {
  58.  
  59.     if(i==0)
  60.     gambiarra();
  61.    
  62.   if(i == (m*n)-1){
  63.     return menor;
  64.  
  65.   }
  66.  
  67.   else if(vetor[i] < menor){
  68.     menor = vetor[i];
  69.     return obter_menor(i+1);
  70.  
  71.   }
  72.   else 
  73.     return obter_menor(i+1);
  74.  
  75.     return 0;
  76. }
  77.  
  78. int obter_maior(int i) {    
  79.  
  80.   if(i==0)
  81.     gambiarra();
  82.    
  83.   if(i == (m*n)){
  84.     return maior;
  85.   }
  86.  
  87.   else if(vetor[i] > maior){
  88.     maior = vetor[i];
  89.     return obter_maior(i+1);
  90.  
  91.   }
  92.   else 
  93.     return obter_maior(i+1);
  94.  
  95. }
  96.  
  97.  
  98. int obter_soma(int i) {
  99.  
  100.     if(i==0)
  101.     gambiarra();
  102.      
  103.     if(i == (m*n)-1){
  104.         return vetor[i];
  105.     }
  106.     else
  107.         return obter_soma(i+1) + vetor[i];
  108. }
  109.  
  110. void gambiarra(){
  111.    
  112.     int i, j, aux = 0;
  113.  
  114.         for(i=0;i<m;i++)
  115.             for(j=0;j<n;j++, aux++)
  116.                 vetor[aux] = matriz[i][j];
  117.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement