Announcement

Collapse
No announcement yet.

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

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • [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:
    Code:
    #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("\n 1: Nhap gia tri ngau nhien cho MT1");
    		printf("\n 2: Nhap gia tri MT1 theo y thich cua thi chu");
    		printf("\n 3: Nhap gia tri ngau nhien cho MT2");
    		printf("\n 4: Nhap gia tri MT2 theo y thich cua thi chu");
    		printf("\n 5: Xuat MT1 ra man hinh");
    		printf("\n 6: Xuat MT2 ra man hinh");
    		printf("\n 7 Cong 2 MT");
    		printf("\n 0: Thoat khoi chuong trinh\n");
    		scanf("%d",&k);
    		switch(k)
    		{
    		case 0:
    		{
    			printf("\n                              ***************\n");
    			printf("\n                              *   BYE BYE   *\n");
    			printf("\n                              ***************\n");
    			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("\nVui long dap ban phim de tiep tuc...\n");
    		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[i][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[i][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[i][j]);
            printf("\n");
        }
    }
    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[i][j]=MT1[i][j]+MT2[i][j];
    		}
    	XuatMT(MT3,Dong1,Cot1);
    }

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

    Comment


    • #3
      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:
      Originally posted by 11520296 View Post
      em làm đúng rồi mà, anh xuất ra đúng mà

      Comment


      • #4
        Originally posted by 12520471 View Post
        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:
        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.
        Top Best Online - The Best Products Review Website

        Comment


        • #5
          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:

          Comment


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

            Comment

            LHQC

            Collapse
            Working...
            X