Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 11 kết quả

Đề tài: Cộng 2 ma trận

  1. #1
    Ngày gia nhập
    12 2011
    Bài viết
    1

    Mặc định Cộng 2 ma trận

    Thầy cho em bài cộng 2 ma trận, em viết nhập vào được rồi nhưng sao không cho qua kết quả, mong các anh xem qua rồi chỉ ra chỗ sai giúp em nha

    Bài tập có dạng:
    giả sử đã được nhập
    111113 6
    a =
    111112 5

    111114 9
    b =
    111117 8


    tính tổng của a và b, do mới học nên em chỉ viết được thế này, mong các anh chỉ giúp


    #include<iostream.h>
    #include<conio.h>
    class PhepCong
    {
    public:
    int a[2][2],b[2][2],c[2][2],i;

    void NhapA()
    {
    cout << "Nhap so a: \n";
    for (i=0;i<2;i=i+1)
    {
    cin >> a[i][0];
    cin >> a[i][1];
    }
    }

    void NhapB()
    {
    cout << "Nhap so b: \n";
    for (i=0;i<2;i=i+1)
    {
    cin >> b[i][0];
    cin >> b[i][1];
    }
    }


    void Tong()
    {
    for (i=0;i<2;i=i++)
    {
    c[i][0]=a[i][0]+b[i][0];
    c[i][1]=a[i][1]+b[i][1];
    }
    }


    void HienThi()
    {
    cout << "Tong 2 so a va b la: \n";
    for (i=0;i<2;i=i++)
    {
    cout << c[i][0] << " " << c[i][1] << "\n";
    }
    }
    };

    void main()
    {
    PhepCong MaTran;
    MaTran.NhapA();
    MaTran.NhapB();
    MaTran.Tong();
    MaTran.HienThi();
    getch();
    }
    Đã được chỉnh sửa lần cuối bởi thenngo : 18-12-2011 lúc 08:37 AM.

  2. #2
    Ngày gia nhập
    11 2010
    Nơi ở
    hell
    Bài viết
    165

    chạy đúng mừ u.có cái chỗ i=i++ có cần phải vít dậy ko
    HT117-5277

  3. #3
    Ngày gia nhập
    12 2011
    Bài viết
    1

    nó chạy, nhưng đến khi nhập xong nó đứng đó luôn, ko hiển thị phần kết quả

  4. #4
    Ngày gia nhập
    10 2011
    Bài viết
    1

    bạn làm theo code này thử đi cũng dễ hiểu nè , sửa lại cho đẹp tý nha

    #include<iostream.h>
    #include<conio.h>
    #define win 20


    int in;
    int max(int a[][win])
    {
    int maxi;
    int i;
    int j;
    maxi=a[0][0];
    for(i=0;i<in;i++)
    for(j=0;j<in;j++)

    if(maxi<a[i][j])

    maxi=a[i][j];
    return maxi;

    }
    void nhap(int a[][win])
    {
    int i,j;
    for(i=0;i<in;i++)
    for(j=0;j<in;j++)
    {
    cout<<"phan tu thu:"<<i+1<<j+1;
    cin>>a[i][j];
    }

    }
    void xuat(int a[][win])
    {
    int i=0,j=0;
    for(i=0;i<in;i++)
    {
    for(j=0;j<in;j++)
    cout<<a[i][j];
    cout<<endl;
    }

    }

    void cong(int a[][win],int b[][win],int c[][win])
    {
    int i,j;
    for(i=0;i<in;i++)
    for(j=0;j<in;j++)
    c[i][j]=a[i][j]+ b[i][j] ;
    }


    main()
    {
    clrscr();
    int a[win][win],b[win][win],c[win][win];
    cout<<"nhap vao cap :";
    cin>>in;
    cout<<"nhap mang a:"<<endl;
    nhap(a);
    cout<<"nhap b:";
    nhap(b);
    cout<<"mag c:"<<endl;
    cong(a,b,c);
    //cong(a,b,c);

    cout<<"a:"<<endl;
    xuat(a);
    cout<<"b:"<<endl;
    xuat(b);
    cout<<"c:"<<endl;
    xuat(c);
    cout<<"so lon nhat cua mang c:"<<max(c);

    getch();
    }



  5. #5
    Ngày gia nhập
    10 2011
    Bài viết
    552

    Ui zời cái class gì kì thế này. Class 3 ma trận 2x2 chăng @@
    Mỗi ma trận 1 cái method nhập
    Giờ muốn mở rộng ra n ma trận thì phải ngồi viết n method ????
    Um Mani Padme Hum...!!

  6. #6
    Ngày gia nhập
    04 2010
    Bài viết
    1,534

    Mặc định Cộng 2 ma trận

    Bài này được viết theo kiểu class chủ của Java và C#

    Đem ý tưởng này áp dụng vào C++ thì đương nhiên là buồn cười rồi.

  7. #7
    Ngày gia nhập
    12 2011
    Bài viết
    1

    Em đã test lại bài rồi, em chỉnh i++ thành i+1 là được, nhưng thầy em dạy i++ tương đương với i+1 tại sao i+1 thì chạy dc còn i++ thì chạy bị sai ?

  8. #8
    Ngày gia nhập
    10 2011
    Bài viết
    552

    for (i=0;i<2;i=i++)
    Sai cơ bản.
    Đọc lại phép ++ trước và ++ sau !
    i++ tương đương i+1 đung!. Nhưng i đã tăng, còn (i++) mang giá trị cũ.
    Lại đem gán vào cho i , vậy thành ra i= giá trị cũ , chả khác gì i=i; 1 phép gán vô nghĩa.

    Phép suy luận : từ i++ <=> i+1 để suy ra i=i+1 <=> i=i++ là 1 phép suy LOẠN

    Vì sai cơ bản nên i ko chạy, i ko chạy thì lặp vô tận.
    Um Mani Padme Hum...!!

  9. #9
    Ngày gia nhập
    12 2011
    Nơi ở
    HN
    Bài viết
    5

    Trích dẫn Nguyên bản được gửi bởi thenngo Xem bài viết
    Em đã test lại bài rồi, em chỉnh i++ thành i+1 là được, nhưng thầy em dạy i++ tương đương với i+1 tại sao i+1 thì chạy dc còn i++ thì chạy bị sai ?
    i+1 thì giá trị của i ko thay đổi (vd i=0;i+1=1 nhưng i =0)
    i++ giá trị của i thay đổi

  10. #10
    Ngày gia nhập
    10 2011
    Bài viết
    552

    Trích dẫn Nguyên bản được gửi bởi hiepsibibenhtri Xem bài viết
    i+1 thì giá trị của i ko thay đổi (vd i=0;i+1=1 nhưng i =0)
    i++ giá trị của i thay đổi
    Ví dụ ẹ quá
    ko thể có phép gán i+1=1
    Giá trị lvalue ko thể là 1 biểu thức. Hay nói nôm na là bên trái dấu = ko thể là 1 biểu thức
    C nó ko đủ "thông minh" để chuyển vế đổi dấu này nọ như: i+1=1 <=> i=1-1 <=> i=0 đâu mà ví dụ
    Um Mani Padme Hum...!!

Các đề tài tương tự

  1. Trao đổi liên kết, trao doi logo, Text Link với các webforumblog (free)
    Gửi bởi nguyenlam14990 trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 31
    Bài viết cuối: 13-03-2012, 11:53 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn