Từ 1 tới 5 trên tổng số 5 kết quả

Đề tài: Các bác sửa hộ em bài mảng 2 chiều này với

  1. #1
    Ngày gia nhập
    02 2008
    Bài viết
    28

    Mặc định Các bác sửa hộ em bài mảng 2 chiều này với

    C++ Code:
    1. /*
    2. Cho mang hai chieu mxn. Lap chuong trinh:
    3.     - tinh tong cac phan tu A[i,j] ma i+j chia het cho 5
    4.     - tinh tong cac phan tu duong cua mang
    5. */
    6. #include<conio.h>
    7. #include<iostream.h>
    8.  
    9. class mang2chieu
    10. {
    11.     private:
    12.         int m,n;
    13.         int *a;
    14.     public:
    15.         void nhap();
    16.         void hien();
    17. };
    18.  
    19. void mang2chieu::nhap()
    20. {
    21.     cout<<"Nhap do rong cau mang 2 chieu\n";
    22.     cout<<"Nhap so luong dong m=";cin>>m;
    23.     cout<<"Nhap so luong cot n=";cin>>n;
    24.     for(int i=1;i<=m;i++)
    25.         for(int j=1;j<=n;j++)
    26.         {
    27.             cout<<"a["<<i<<"]["<<j<<"]=";
    28.             cin>>a[i,j];
    29.         }
    30. }
    31.  
    32. void mang2chieu::hien()
    33. {       cout<<"Mang vua nhap vao la :\n";
    34.     for(int i=1;i<=m;i++)
    35.         {
    36.             for(int j=1;j<=n;j++)
    37.             {
    38.             cout<<"a["<<i<<"]["<<j<<"]="<<a[i,j]<<"  ";
    39.             }
    40.         cout<<"\n";
    41.         }
    42. }
    43.  
    44. void main()
    45. {
    46.    
    47.     mang2chieu mxn;
    48.     mxn.nhap();
    49.     mxn.hien();
    50.    
    51. }

    Em chạy được nhưng nhập giá trị vào in ra toàn bị sai thôi.
    ví dụ khi em nhập mảng 2 x 2 với các giá trị lần lượt đưa vào là a[1][1]=1, a[1][2]=2, a[2][1]=3. a[2][2]=4, thì nó in ra là
    [1][1]=3 a[1][2]=4
    a[2][1]=3. a[2][2]=4
    Đã được chỉnh sửa lần cuối bởi duc30121989 : 01-03-2009 lúc 09:51 PM.

  2. #2
    Ngày gia nhập
    10 2008
    Bài viết
    99

    C++ Code:
    1. Bạn sửa lại như sau :
    2. /*
    3. Cho mang hai chieu mxn. Lap chuong trinh:
    4.     - tinh tong cac phan tu A[i,j] ma i+j chia het cho 5
    5.     - tinh tong cac phan tu duong cua mang
    6. */
    7. #include<conio.h>
    8. #include<iostream.h>
    9.  
    10. class mang2chieu
    11. {
    12.     private:
    13.         int m,n;
    14.         int *a;
    15.     public:
    16.         void nhap();
    17.         void hien();
    18. };
    19.  
    20. void mang2chieu::nhap()
    21. {
    22.     cout<<"Nhap do rong cau mang 2 chieu\n";
    23.     cout<<"Nhap so luong dong m=";cin>>m;
    24.     cout<<"Nhap so luong cot n=";cin>>n;
    25.     for(int i=0;i<m;i++)  // Lỗi sai ở chỗ này
    26.         for(int j=0;j<n;j++)
    27.         {
    28.             cout<<"a["<<i<<"]["<<j<<"]=";
    29.             cin>>a[i,j];
    30.         }
    31. }
    32.  
    33. void mang2chieu::hien()
    34. {       cout<<"Mang vua nhap vao la :\n";
    35.     for(int i=0;i<m;i++) // Lỗi sai ở chỗ này
    36.         {
    37.             for(int j=0;j<n;j++)
    38.             {
    39.             cout<<"a["<<i<<"]["<<j<<"]="<<a[i,j]<<"  ";
    40.             }
    41.         cout<<"\n";
    42.         }
    43. }
    44.  
    45. void main()
    46. {
    47.    
    48.     mang2chieu mxn;
    49.     mxn.nhap();
    50.     mxn.hien();
    51.    
    52. }

    Khi khai báo mảng 1 chiều hoặc 2 chiều
    thì phần tử đầu của mảng bắt đầu từ phần tử 0
    code của bạn bắt đầu bằng phần tử 1 cho nên mới có lỗi trên

  3. #3
    Ngày gia nhập
    02 2008
    Bài viết
    28

    Hic có được đâu bạn mặc dù mình làm thế rôi đấy. Thực ra kia chỉ là số đếm mình nghĩ nó k0 liên quan gì

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

    Mình chưa xem hết lỗi
    Bạn sửa lại như sau :
    C++ Code:
    1. /*
    2. Cho mang hai chieu mxn. Lap chuong trinh:
    3.     - tinh tong cac phan tu A[i,j] ma i+j chia het cho 5
    4.     - tinh tong cac phan tu duong cua mang
    5. */
    6. #include<conio.h>
    7. #include<iostream.h>
    8.  
    9. class mang2chieu
    10. {
    11.     private:
    12.         int m,n;
    13.         int *a;
    14.     public:
    15.         void nhap();
    16.         void hien();
    17. };
    18.  
    19. void mang2chieu::nhap()
    20. {
    21.     cout<<"Nhap do rong cau mang 2 chieu\n";
    22.     cout<<"Nhap so luong dong m=";cin>>m;
    23.     cout<<"Nhap so luong cot n=";cin>>n;
    24.     for(int i=0;i<m;i++)  // Lỗi sai ở chỗ này
    25.         for(int j=0;j<n;j++)
    26.         {
    27.             cout<<"a["<<i<<"]["<<j<<"]=";
    28.             cin>>a[i][j]; // Mảng hai chiều phải khai báo như vậy
    29.         }
    30. }
    31.  
    32. void mang2chieu::hien()
    33. {       cout<<"Mang vua nhap vao la :\n";
    34.     for(int i=0;i<m;i++) // Lỗi sai ở chỗ này
    35.         {
    36.             for(int j=0;j<n;j++)
    37.             {
    38.             cout<<"a["<<i<<"]["<<j<<"]="<<a[i][j]<<"  ";
    39.             }
    40.         cout<<"\n";
    41.         }
    42. }
    43.  
    44. void main()
    45. {
    46.    
    47.     mang2chieu mxn;
    48.     mxn.nhap();
    49.     mxn.hien();
    50.    
    51. }

    Bạn phải nhớ là phần tử đầu tiên của mảng là phần tử 0
    cho nên bắt đầu vòn lặp for luôn là từ phần tử 0

  5. #5
    Ngày gia nhập
    02 2008
    Bài viết
    28

    Thanks bạn, mình sửa rồi nhưng vẫn còn 1 chỗ cần sửa nữa

    C++ Code:
    1. /*
    2. Cho mang hai chieu mxn. Lap chuong trinh:
    3.     - tinh tong cac phan tu A[i,j] ma i+j chia het cho 5
    4.     - tinh tong cac phan tu duong cua mang
    5. */
    6. #include<conio.h>
    7. #include<iostream.h>
    8.  
    9. class mang2chieu
    10. {
    11.     private:
    12.         int m,n;
    13.         int a[10][10];//còn chỗ này nữa
    14.     public:
    15.         void nhap();
    16.         void hien();
    17. };
    18.  
    19. void mang2chieu::nhap()
    20. {
    21.     cout<<"Nhap do rong cau mang 2 chieu\n";
    22.     cout<<"Nhap so luong dong m=";cin>>m;
    23.     cout<<"Nhap so luong cot n=";cin>>n;
    24.     for(int i=0;i<m;i++)  // Lỗi sai ở chỗ này
    25.         for(int j=0;j<n;j++)
    26.         {
    27.             cout<<"a["<<i<<"]["<<j<<"]=";
    28.             cin>>a[i][j]; // Mảng hai chiều phải khai báo như vậy
    29.         }
    30. }
    31.  
    32. void mang2chieu::hien()
    33. {       cout<<"Mang vua nhap vao la :\n";
    34.     for(int i=0;i<m;i++) // Lỗi sai ở chỗ này
    35.         {
    36.             for(int j=0;j<n;j++)
    37.             {
    38.             cout<<"a["<<i<<"]["<<j<<"]="<<a[i][j]<<"  ";
    39.             }
    40.         cout<<"\n";
    41.         }
    42. }
    43.  
    44. void main()
    45. {
    46.    
    47.     mang2chieu mxn;
    48.     mxn.nhap();
    49.     mxn.hien();
    50.    
    51. }

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

  1. Trả lời: 2
    Bài viết cuối: 21-04-2013, 09:46 AM
  2. Lỗi: bố cục trang web tự tăng theo chiều ngang khi chiều cao thay đổi
    Gửi bởi tuanngocpt trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 2
    Bài viết cuối: 16-03-2013, 11:25 PM
  3. Trả lời: 1
    Bài viết cuối: 28-04-2012, 09:43 PM
  4. Cách truyền mang 1 chiều cho hàm bài con trỏ và mảng một chiều ai có thể giải thích giúp mình
    Gửi bởi biencute trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 8
    Bài viết cuối: 21-03-2012, 09:00 AM
  5. Lời giải bài tập: Chuỗi Ký tự, mảng số nguyên 1 chiều, mảng 2 chiều, tạo Menu
    Gửi bởi xuanngoc trong diễn đàn Thủ thuật, Tutorials và Mã nguồn C/C++/C++0x
    Trả lời: 0
    Bài viết cuối: 15-10-2011, 01:17 AM

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