Ripper 0 Denunciar post Postado Maio 28, 2010 Tenho que resolver o problema: Elabore um programa em C que receba do usuário duas matrizes quadradas de números inteiros. Crie funções para calcular: a soma das duas matrizes, o produto das duas matrizes, a transposta da primeira matriz e o determinante da segunda matriz. As matrizes de entrada deverão ser passadas por parâmetro para cada uma das funções. Fiz isso: #include<stdio.h> #include<stdlib.h> int i; int j; int n; void soma(int a[i][j],int b[i][j]); void produto(int a[i][j],int b[i][j]); void transposta(int a[i][j]); void determinante(int a[i][j]); int main(){ int m1[i][j]; int m2[i][j]; printf("Digite o numero de linhas das matrizes "); scanf("%d", &n); for(i=0;i<n;i++){ for(j=0;j<n;j++){ printf("Digite os elementos da primeira matriz "); scanf(" %d",&m1[i][j]); } } for(i=0;i<n;i++){ for(j=0;j<n;j++){ printf("Digite os elementos da segunda matriz "); scanf("%d",&m2[i][j]); } } for(i=0;i<n;i++){ for(j=0;j<n;j++){ printf(" %d", m1[i][j]); } printf("\n"); } printf("\n"); for(i=0;i<n;i++){ for(j=0;j<n;j++){ printf(" %d", m2[i][j]); } printf("\n"); } printf("\n"); soma(m1,m2); printf("\n"); produto(m1,m2); printf("\n"); transposta(m1); return 0; } void soma(int a[i][j],int b[i][j]) { int c[i][j]; for(i=0;i<n;i++){ for(j=0;j<n;j++) c[i][j]=0; } for(i=0;i<n;i++){ for(j=0;j<n;j++) c[i][j]= (a[i][j])+(b[i][j]); } for(i=0;i<n;i++){ for(j=0;j<n;j++){ printf(" %d",c[i][j]); } printf("\n"); } } void produto(int a[i][j],int b[i][j]) { int d[i][j]; for(i=0;i<n;i++){ for(j=0;j<n;j++){ d[i][j]=0; } } for(i=0;i<n;i++){ for(j=0;j<n;j++){ d[i][j]= d[i][j]+a[i][j]*b[j][i]; } } for(i=0;i<n;i++){ for(j=0;j<n;j++){ printf(" %d",d[i][j]); } printf("\n"); } } void transposta(int a[i][j]) { int e[i][j]; for(i=0;i<n;i++){ for(j=0;j<n;j++){ e[j][i]=0; } } for(i=0;i<n;i++){ for(j=0;j<n;j++){ e[j][i]=a[i][j]; } } for(i=0;i<n;i++){ for(j=0;j<n;j++){ printf(" %d",e[i][j]); } printf("\n"); } } Mas quando compilo ( Usando linux ubuntu) e entro com alguns numeros aparece isso: Digite o numero de linhas das matrizes 2 Digite os elementos da primeira matriz 1 Digite os elementos da primeira matriz 2 Digite os elementos da primeira matriz 3 Digite os elementos da primeira matriz 4 Digite os elementos da segunda matriz 5 Digite os elementos da segunda matriz 6 Digite os elementos da segunda matriz 7 Digite os elementos da segunda matriz 8 3 4 3 4 7 8 7 8 10 12 -1079419664 -1216704212 21 -22711360 0 0 3 0 4 0 Será que alguém pode me dar uma força. Agradeço desde já. Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Maio 28, 2010 Preste atenção no que você escreve: #include<stdio.h> #include<stdlib.h> int i; int j; int n; void soma(int a[i][j],int b[i][j]); void produto(int a[i][j],int b[i][j]); void transposta(int a[i][j]); void determinante(int a[i][j]); int main(){ int m1[i][j]; int m2[i][j]; Compartilhar este post Link para o post Compartilhar em outros sites
João Nascimento 0 Denunciar post Postado Maio 29, 2010 Não dei grande olhadela ao seu código, mas não podes passar os parâmetros para a função dessa maneira... Acho que é isso... Compartilhar este post Link para o post Compartilhar em outros sites