Jump to content
Fórum Script Brasil
  • 0

O que há de errado? Soma de Matrizes Quadradas


Question

Não estou conseguindo identificar o erro, observe, se fazer uma matriz quadrada de ordem 2 o que acontece com a soma de [1][2] e [2][1]:

#include <stdio.h>


#include <stdlib.h>


#include <time.h>

int main (){

       int i;

       int j;

       int linhas;

       int colunas;

       int ordem;

       float A[i][j];

       float B[i][j];

      

       long T1;

    long T2;

    float delta;

      

       printf("Digite a ordem das matrizes quadradas A e B: ");

       scanf("%d", &ordem);

      

       T1 = clock();

      

       printf("\nAs matrizes quadradas A e B, são matrizes de ordem %d",ordem);

      

       linhas = ordem;

       colunas = ordem;

      

       for(i = ; i < linhas; i++){

            

             for(j = ; j < colunas; j++){

                   

                    printf("\n\nEntre com o valor da matriz A[%d][%d]: ",i+1,j+1);

                    scanf("%f", &A[i][j]);

                   

                    printf("\nEntre com o valor da matriz B[%d][%d]: ",i+1,j+1);

                    scanf("%f", &B[i][j]);

                   

             }

       }

      

       for(i = ; i < linhas; i++){

            

             for(j = ; j < colunas; j++){

 

                    printf("\nA soma das matrizes A[%d][%d] e B[%d][%d] = %.2f",i+1,j+1,i+1,j+1,A[i][j] + B[i][j]);

 

             }

       }

      

       T2 = clock();

    delta = (float)(T2-T1)/CLOCKS_PER_SEC;

   

    printf("\n\nTempo %.5f segundos",delta);

 

       return ;

      

}

Link to post
Share on other sites

5 answers to this question

Recommended Posts

  • 0

Apenas pequenos ajustes são necessários:

#include <stdio.h>

#include <stdlib.h>

#include <time.h>

int main (){

       int i;

       int j;

       int linhas;

       int colunas;

       int ordem;

       long T1;

    long T2;

    float delta;

	//inicialize só depois de entrar com a ordem, e inicialize com os valores das variáveis linhas e colunas.

      
       printf("Digite a ordem das matrizes quadradas A e B: ");

       scanf("%d", &ordem);

      
       T1 = clock();

      
       printf("\nAs matrizes quadradas A e B, são matrizes de ordem %d",ordem);

       //Diferente de como é na realidade cotidiana, arrays iniciam sempre o primeiro elemento no 0, logo ordem = ordem - 1.
      
	   ordem = ordem - 1;
       
       linhas = ordem;
 
       colunas = ordem;
       
       //agora sim insira as matrizes:
       
		float A[linhas][colunas];

       float B[linhas][colunas];

	//ajuste os testes lógicos para <= linhas e colunas. Pois quando   i == linhas    é preciso executar o for ainda mais uma vez.

      
       for(i = 0 ; i <= linhas; i++){

            
             for(j = 0; j <= colunas; j++){

                   
                    printf("\n\nEntre com o valor da matriz A[%d][%d]: ",i+1,j+1);

                    scanf("%f", &A[i][j]);

                   
                    printf("\nEntre com o valor da matriz B[%d][%d]: ",i+1,j+1);

                    scanf("%f", &B[i][j]);

                   
             }

       }

      
       for(i = 0; i <= linhas; i++){

            
             for(j = 0; j <= colunas; j++){

 

                    printf("\nA soma das matrizes A[%d][%d] e B[%d][%d] = %.2f",i+1,j+1,i+1,j+1,A[i][j] + B[i][j]);

 

             }

       }

      
       T2 = clock();

    delta = (float)(T2-T1)/CLOCKS_PER_SEC;

   
    printf("\n\nTempo %.5f segundos",delta);

 //return 0;

       return 0;

      
}

 

Inicialize as matrizes só depois de entrar com a ordem e atribui-las a linhas e colunas.

Link to post
Share on other sites
  • 0
#include <stdio.h>

#include <stdlib.h>

#include <time.h>

int main (){

       int i;

       int j;

       int linhas;

       int colunas;

       int ordem;

       long T1;

    long T2;

    float delta;

	//inicialize só depois de entrar com a ordem, e inicialize com os valores das variáveis linhas e colunas.

      
       printf("Digite a ordem das matrizes quadradas A e B: ");

       scanf("%d", &ordem);

      
       T1 = clock();

      
       printf("\nAs matrizes quadradas A e B, são matrizes de ordem %d",ordem);

       //Diferente de como é na realidade cotidiana, arrays iniciam sempre o primeiro elemento no 0, logo ordem = ordem - 1.
      ordem = ordem - 1;
      linhas = ordem;//se a ordem digitada foi 2 a linha e a coluna ira receber 1
 	  colunas = ordem;
	   
       
       
       
       //agora sim insira as matrizes:
       
		float A[linhas+1][colunas+1];//se deixar so linhas e colunas sera criada um matriz 1 por 1

       float B[linhas+1][colunas+1];

	//ajuste os testes lógicos para <= linhas e colunas. Pois quando   i == linhas    é preciso executar o for ainda mais uma vez.

     
      
       for(i =  ; i <= linhas; i++){

            
             for(j = ; j <= colunas; j++){

                   
                    printf("\n\nEntre com o valor da matriz A[%d][%d]: ",i+1,j+1);

                    scanf("%f", &A[i][j]);

                   
                    printf("\nEntre com o valor da matriz B[%d][%d]: ",i+1,j+1);

                    scanf("%f", &B[i][j]);

                   
             }

       } 
      
       for(i = ; i <= linhas; i++){

            
             for(j = ; j <= colunas; j++){

 

                    printf("\nA soma das matrizes A[%d][%d] e B[%d][%d] = %.2f",i+1,j+1,i+1,j+1,A[i][j] + B[i][j]);

 

             }

       }

      
       T2 = clock();

    delta = (float)(T2-T1)/CLOCKS_PER_SEC;

   
    printf("\n\nTempo %.5f segundos",delta);

 //return 0;

       return ;

      
}

 

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      148719
    • Total Posts
      644508
×
×
  • Create New...