Advertisement
Jvsierra

Matriz de Quadrados

May 27th, 2019
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.40 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <iostream>
  3. #include <iomanip>  
  4.  
  5. #define TFL 20
  6. #define TFC 20
  7.  
  8. using namespace std;
  9.  
  10. unsigned long long int numDig(unsigned long long int n)
  11. {
  12.     unsigned long long int c = 0;
  13.    
  14.     if(n == 0)
  15.         return 1;
  16.     else
  17.     {
  18.         while(n > 0)
  19.         {
  20.             c++;
  21.             n /= 10;
  22.         }
  23.        
  24.         return c;
  25.     }
  26. }
  27.  
  28. unsigned long long int AchaMaior(unsigned long long int mat[TFL][TFC], unsigned long long int m,
  29.                                 unsigned long long int col)
  30. {
  31.     int l, c;
  32.     unsigned long long int maior = 0;
  33.    
  34.     for(l = 0; l < m; l++)
  35.         if(mat[l][col] > maior)
  36.             maior = numDig(mat[l][col]);
  37.    
  38.     return maior;
  39. }
  40.  
  41. int main(void)
  42. {
  43.     unsigned long long int nc, i, j, k, m, x = 4;
  44.     unsigned long long int mat[TFL][TFC];
  45.     unsigned long long int maiores[TFL];
  46.    
  47.     scanf("%lld", &nc);
  48.    
  49.     for(i = 0; i < nc; i++)
  50.     {
  51.         if(i > 0)
  52.             printf("\n");
  53.            
  54.         scanf("%llu", &m);
  55.        
  56.         for(j = 0; j < m; j++)
  57.             for(k = 0; k < m; k++)
  58.             {
  59.                 scanf("%llu", &mat[j][k]);
  60.                 mat[j][k] *= mat[j][k];
  61.             }
  62.                
  63.         for(j = 0; j < m; j++)
  64.             maiores[j] = AchaMaior(mat, m, j);     
  65.                
  66.         if(i > 0)
  67.             printf("\n");      
  68.                
  69.         printf("Quadrado da matriz #%d:\n", x);
  70.        
  71.         for(j = 0; j < m; j++)
  72.         {
  73.             for(k = 0; k < m; k++)
  74.             {
  75.                 cout << setw(maiores[k]);
  76.                 cout << mat[j][k];
  77.                
  78.                 if(k < m - 1)
  79.                     printf(" ");
  80.             }
  81.            
  82.             if(j < m - 1)
  83.                 printf("\n");
  84.         }
  85.                
  86.         x++;
  87.     }
  88.    
  89.     return 0;
  90. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement