PerguntasScript Postado Maio 1, 2016 Denunciar Share Postado Maio 1, 2016 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 ; } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Aristóteles Postado Maio 1, 2016 Denunciar Share Postado Maio 1, 2016 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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 PerguntasScript Postado Maio 1, 2016 Autor Denunciar Share Postado Maio 1, 2016 Obrigado, mas agora o erro está na soma do A[1][1] e B[1][1], por exemplo: Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 JeanR Postado Maio 1, 2016 Denunciar Share Postado Maio 1, 2016 #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 ; } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 PerguntasScript Postado Maio 1, 2016 Autor Denunciar Share Postado Maio 1, 2016 Agora funcionou corretamente, obrigado! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Aristóteles Postado Maio 1, 2016 Denunciar Share Postado Maio 1, 2016 Valeu pela correção Jean. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
PerguntasScript
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 para o comentário
Compartilhar em outros sites
5 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.