[C] Cộng 2 ma trận!!!

Chào các huynh!!! Tình hình là đệ đang làm bài Cộng 2 ma trận…phần nhập thì chắc ok rùi…còn phần Cộng 2 ma trận nó cứ trả về số -842150450..
mong các huynh chỉ giáo!!!:haha:
tks các huynh trước:love:

#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <malloc.h>
#include <stdlib.h>
#include <time.h>
#define Max 100
void NhapMT(int **MT,int Dong,int Cot);
void XuatMT(int **MT,int Dong,int Cot);
void CongMT(int **MT1,int Dong1,int Cot1,int **MT2,int Dong2,int Cot2);
void ngaunhien(int **MT,int dong,int cot);
void main()
{
int dong1,cot1,dong2,cot2,k;
int **a,**b;
do
{
printf("nhap so dong va cot cua ma tran 1: ");
scanf("%d%d",&dong1,&cot1);
}
while(dong1<1||cot1<1||dong1>Max||cot1>Max);
do
{
printf("nhap so dong va cot cua ma tran 2: ");
scanf("%d%d",&dong2,&cot2);
}
while(dong2<1||cot2<1||dong2>Max||cot2>Max);
a=(int **)malloc(100);
for(int d=0;d<dong1;d++)
a[d]=(int *)malloc(100);
b=(int **)malloc(100);
for(int d=0;d<dong2;d++)
b[d]=(int *)malloc(100);
do
{
printf("Hay chon 1 cai dy kung:");
printf("
1: Nhap gia tri ngau nhien cho MT1");
printf("
2: Nhap gia tri MT1 theo y thich cua thi chu");
printf("
3: Nhap gia tri ngau nhien cho MT2");
printf("
4: Nhap gia tri MT2 theo y thich cua thi chu");
printf("
5: Xuat MT1 ra man hinh");
printf("
6: Xuat MT2 ra man hinh");
printf("
7 Cong 2 MT");
printf("
0: Thoat khoi chuong trinh
");
scanf("%d",&k);
switch(k)
{
case 0:
{
printf("
***************
");
printf("
*   BYE BYE   *
");
printf("
***************
");
break;
}
case 1: ngaunhien(a,dong1,cot1); break;
case 2: NhapMT(a,dong1,cot1); break;
case 3: ngaunhien(b,dong2,cot2); break;
case 4: NhapMT(a,dong2,cot2); break;
case 5: XuatMT(a,dong1,cot1); break;
case 6: XuatMT(b,dong2,cot2); break;
case 7:
{
if((dong1!=dong2)||(cot1!=cot2))
{
printf("khong cong dc nha kung");
break;
}
else
{
CongMT(a,dong1,cot1,b,dong2,cot2);
}
}
}
printf("
Vui long dap ban phim de tiep tuc...
");
getch();
}
while(k!=0);
}
void ngaunhien(int **MT,int dong,int cot)
{
srand(time(NULL));
for(int i=0;i<dong;i++)
for(int j=0;j<cot;j++)
{
MT*[j]=rand()%10;
}
}
void NhapMT(int **MT,int Dong,int Cot)
{
for(int i=0;i<Dong;i++)
for(int j=0;j<Cot;j++)
{
printf("A[%d][%d]= ",i,j);
scanf("%d",&MT*[j]);
}
}
void XuatMT(int **MT,int Dong,int Cot)
{
for(int i=0;i<Dong;i++)
{
for(int j=0;j<Cot;j++)
printf("%4d",MT*[j]);
printf("
");
}
}
void CongMT(int **MT1,int Dong1,int Cot1,int **MT2,int Dong2,int Cot2)
{
int **MT3;
MT3=(int **)malloc(100);
for(int d=0;d<Dong1;d++)
MT3[d]=(int *)malloc(100);
for(int i=0;i<Dong1;i++)
for(int j=0;j<Cot1;j++)
{
MT3*[j]=MT1*[j]+MT2*[j];
}
XuatMT(MT3,Dong1,Cot1);
}

em làm đúng rồi mà, anh xuất ra đúng mà

oc…hjc.đệ thử lại mấy lần rùi…nhưng nó vẫn ra -84215… ah…huynh xem kỹ lại giùm đệ đy:cry:[QUOTE=11520296;184873]em làm đúng rồi mà, anh xuất ra đúng mà[/QUOTE]

[QUOTE=12520471;184890]oc…hjc.đệ thử lại mấy lần rùi…nhưng nó vẫn ra -84215… ah…huynh xem kỹ lại giùm đệ đy:cry:[/QUOTE]
a test bài e rùi. Chạy ok mà. Em thử nhớ lại lúc e test đã nhập vào mấy mảng đó chưa ? Mà nhớ là cộng chỉ cộng được 2 ma trận cùng kích cỡ nhé… k thì chắc chắn sai.

hì…đệ biết rùi.trong cái menu case4 de viết nhầm case 4: NhapMT(a,dong2,cot2) phải là case 4: NhapMT(b,dong2,cot2) new dung.
tks các huynh nhé!!!:go:

không có gì đâu nhỏ!