int matrixSum(int ** mA, int ** mB, int ** mC, int la, int lb, int ca, int cb){
int i, j;
if(la != lb || ca != cb){
return 0;
}
else{
//Como as linhas e colunas precisam ser iguais, pode-se usar tanto la e ca, como lb e cb
mC = malloc(la * sizeof(int *));
if(mC == NULL){
printf("ERROR! There is no space on disc!\n");
}
for(i=0; i<ca; i++){
mC = malloc(sizeof(int));
if(mC == NULL){
printf("ERROR! There is no space on disc!\n");
}
}
Pergunta
Tallahassee
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
int matrixSum(int ** mA, int ** mB, int ** mC, int la, int lb, int ca, int cb);
int main(){
int ** matrixA, ** matrixB, ** matrixC, lineA, columnA, lineB, columnB;
int i, j;
printf("Insert the numbers of lines desired for matrix A:\n>>>\n");
scanf("%d", &lineA);
fflush(stdin);
printf("Insert the numbers of columns desired for matrix A:\n>>>\n");
scanf("%d", &columnA);
fflush(stdin);
printf("Insert the numbers of lines desired for matrix B:\n>>>\n");
scanf("%d", &lineB);
fflush(stdin);
printf("Insert the numbers of columns desired for matrix B:\n>>>\n");
scanf("%d", &columnB);
fflush(stdin);
matrixA = malloc(lineA * sizeof(int *));
if(matrixA == NULL){
printf("ERROR! There isn't space on disc!\n");
return 1;
}
for(i=0; i<columnA; i++){
matrixA = malloc(sizeof(int));
if(matrixA == NULL){
printf("ERROR! There isn't space on disc!\n");
return 1;
}
}
matrixB = malloc(lineB * sizeof(int *));
if(matrixB == NULL){
printf("ERROR! There isn't space on disc!\n");
return 1;
}
for(i=0; i<columnB; i++){
matrixB = malloc(sizeof(int));
if(matrixB == NULL){
printf("ERROR! There isn't space on disc!\n");
return 1;
}
}
for(i=0; i<lineA; i++){
for(j=0; j<columnA; j++){
printf("\nMatrix A - Position [%d][%d]: ", i+1, j+1);
scanf("%d", &matrixA[j]);
fflush(stdin);
}
}
for(i=0; i<lineB; i++){
for(j=0; j<columnB; j++){
printf("\nMatrix B - Position [%d][%d]: ", i+1, j+1);
scanf("%d", &matrixB[j]);
fflush(stdin);
}
}
int ans;
ans = matrixSum(matrixA, matrixB, matrixC, lineA, lineB, columnA, columnB);
if(ans == 0){
printf("\nIt is impossible sum the arrays because the number of rows and columns are different!\n");
return 0;
}
else{
for(i=0; i<lineA; i++){
for(j=0; j<columnA; j++){
printf("\nMatrix C - Position[%d][%d] = %d\n", i, j, matrixC[j]);
}
}
return 0;
}
}
int matrixSum(int ** mA, int ** mB, int ** mC, int la, int lb, int ca, int cb){
int i, j;
if(la != lb || ca != cb){
return 0;
}
else{
//Como as linhas e colunas precisam ser iguais, pode-se usar tanto la e ca, como lb e cb
mC = malloc(la * sizeof(int *));
if(mC == NULL){
printf("ERROR! There is no space on disc!\n");
}
for(i=0; i<ca; i++){
mC = malloc(sizeof(int));
if(mC == NULL){
printf("ERROR! There is no space on disc!\n");
}
}
for(i=0; i<lb; i++){
Editado por Tallahasseefor(j=0; j<cb; j++){
mC[j] = mA[j] + mB[j];
}
}
}
return 1;
}
Link para o comentário
Compartilhar em outros sites
1 resposta 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.