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

Đề tài: Sữa lỗi chương trình tạo ma trận ngẫu nhiên

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

    Angry Sữa lỗi chương trình tạo ma trận ngẫu nhiên

    Các bác giúp mình sữa lỗi 2 đoạn code sau.Không biết sai chỗ nào mà chạy không được.thanks trước nha..........

    /*tạo ra ma trận a (m hàng , n cot) chứa các số nguyên bằng cách cấp phát động cho biến con trỏ a. Sau đó khởi tạo ma trận a chứa các số nguyên ngẫu nhiên từ 0..9 */
    void init(int** a,int m,int n)
    {
    *a=new int[m*n];

    srand((unsigned)time(NULL));
    for(int i=0;i<m*n;++i)
    *a[i]=rand()%10;
    cout<<"Mang tao ngau nhien la\n";
    for(int i=0;i<m;i++)
    {
    for(int j=0;j<n;j++)
    cout<<a[i][j]<<" ";
    cout<<endl;}
    }

    /*tạo ma trận b (n hàng, m cột) chứa các số nguyên bằng cách
    cấp phát động cho biến con trỏ b. Sau dó, tạo ra ma trận chuyển vị của ma trận a và chứa
    vào ma trận b*/
    void transposeMatrix(int** a,int m,int n,int** b)
    {
    *b=new int[m*n];
    for(int i=0;i<m;i++)
    for(int j=0;j<n;j++)
    b[j][i]=a[i][j];
    cout<<"Mang b la\n";
    for(int i=0;i<n;i++)
    {
    for(int j=0;j<m;j++)
    cout<<b[i][j]<<" ";
    cout<<endl;}
    }

  2. #2
    Ngày gia nhập
    03 2010
    Nơi ở
    My Home
    Bài viết
    772

    C++ Code:
    1. #include <stdlib.h>
    2. #include <time.h>
    3. #include <iostream>
    4.  
    5. using namespace std;
    6.  
    7. /*tạo ra ma trận a (m hàng , n cot) chứa các số nguyên bằng cách cấp phát động cho biến con trỏ a. Sau đó khởi tạo ma trận a chứa các số nguyên ngẫu nhiên từ 0..9 */
    8. void init(int** a,int m,int n)
    9. {
    10.     *a=new int[m*n];
    11.     int * p = *a;
    12.     srand((unsigned)time(NULL));
    13.     for(int i=0;i<m*n;++i)
    14.         p[i] = rand()%10;
    15.     cout<<"Mang tao ngau nhien la\n";
    16.  
    17.     for(int i=0;i<m;i++)
    18.     {
    19.         for(int j=0;j<n;j++)
    20.             cout<<p[j]<<" ";
    21.         p += n;
    22.         cout<<endl;
    23.     }
    24. }
    25.  
    26. /*tạo ma trận b (n hàng, m cột) chứa các số nguyên bằng cách
    27. cấp phát động cho biến con trỏ b. Sau dó, tạo ra ma trận chuyển vị của ma trận a và chứa
    28. vào ma trận b*/
    29. void transposeMatrix(int* a,int m,int n,int** b)
    30. {
    31.     *b=new int[m*n];
    32.     for(int i=0;i<m;i++)
    33.         for(int j=0;j<n;j++)
    34.             (*b)[j * m + i]=a[i * n + j];
    35.     cout<<"Mang b la\n";
    36.     int * p = *b;
    37.     for(int i=0;i<n;i++)
    38.     {
    39.         for(int j=0;j<m;j++)
    40.             cout<<p[j]<<" ";
    41.         p += m;
    42.         cout<<endl;
    43.     }
    44. }
    45.  
    46. int main()
    47. {
    48.     int *a, *b;
    49.     int m = 5, n = 3;
    50.     init(&a, m, n);
    51.     transposeMatrix(a, m, n, &b);
    52.     delete[] a;
    53.     delete[] b;
    54.  
    55.     return 0;
    56. }

  3. #3
    Ngày gia nhập
    04 2012
    Bài viết
    3

    Trích dẫn Nguyên bản được gửi bởi namdq2k Xem bài viết
    C++ Code:
    1. #include <stdlib.h>
    2. #include <time.h>
    3. #include <iostream>
    4.  
    5. using namespace std;
    6.  
    7. /*tạo ra ma trận a (m hàng , n cot) chứa các số nguyên bằng cách cấp phát động cho biến con trỏ a. Sau đó khởi tạo ma trận a chứa các số nguyên ngẫu nhiên từ 0..9 */
    8. void init(int** a,int m,int n)
    9. {
    10.     *a=new int[m*n];
    11.     int * p = *a;
    12.     srand((unsigned)time(NULL));
    13.     for(int i=0;i<m*n;++i)
    14.         p[i] = rand()%10;
    15.     cout<<"Mang tao ngau nhien la\n";
    16.  
    17.     for(int i=0;i<m;i++)
    18.     {
    19.         for(int j=0;j<n;j++)
    20.             cout<<p[j]<<" ";
    21.         p += n;
    22.         cout<<endl;
    23.     }
    24. }
    25.  
    26. /*tạo ma trận b (n hàng, m cột) chứa các số nguyên bằng cách
    27. cấp phát động cho biến con trỏ b. Sau dó, tạo ra ma trận chuyển vị của ma trận a và chứa
    28. vào ma trận b*/
    29. void transposeMatrix(int* a,int m,int n,int** b)
    30. {
    31.     *b=new int[m*n];
    32.     for(int i=0;i<m;i++)
    33.         for(int j=0;j<n;j++)
    34.             (*b)[j * m + i]=a[i * n + j];
    35.     cout<<"Mang b la\n";
    36.     int * p = *b;
    37.     for(int i=0;i<n;i++)
    38.     {
    39.         for(int j=0;j<m;j++)
    40.             cout<<p[j]<<" ";
    41.         p += m;
    42.         cout<<endl;
    43.     }
    44. }
    45.  
    46. int main()
    47. {
    48.     int *a, *b;
    49.     int m = 5, n = 3;
    50.     init(&a, m, n);
    51.     transposeMatrix(a, m, n, &b);
    52.     delete[] a;
    53.     delete[] b;
    54.  
    55.     return 0;
    56. }
    Bạn ơi cho mình hỏi
    Nếu ta khai bao hàm void transposeMatrix(int** a,int m,int n,int** b) thì khi đó lệnh gán (*b)[j * m + i]=a[i * n + j]; sẽ thay đổi ra sao.Mong bạn trả lời giúp mình gấp.Thanks

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

  1. Lập trình C Hàm tạo số ngẫu nhiên | Cách nhập giá trị ngẫu nhiên cho ma trận?
    Gửi bởi chuong01 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 15
    Bài viết cuối: 13-08-2012, 09:43 PM
  2. Tạo ma trận ngẫu nhiên trong lập trình C#?
    Gửi bởi montermas trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 12
    Bài viết cuối: 26-04-2012, 02:15 AM
  3. Lỗi ghi 3 trận ngẫu nhiên vào file
    Gửi bởi chuong01 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 6
    Bài viết cuối: 30-10-2009, 10:59 AM
  4. Cách Tạo giá trị ngẫu nhiên cho ma trận
    Gửi bởi nobita2008 trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 1
    Bài viết cuối: 04-04-2009, 12:05 AM
  5. Bài toán tháp Hanoi với trạng thái ban đầu ngẫu nhiên
    Gửi bởi messi trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 2
    Bài viết cuối: 02-03-2008, 10:56 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