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

Đề tài: Bài tập về mảng 2 chiều đây!!!!!!!!!

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

    Wink Bài tập về mảng 2 chiều đây!!!!!!!!!

    Các pác xem giùm em bài này thế nào nhé.Ai có biết cách làm thế nào thì hướng dẫn cho em biết với.
    Đề bài là: Cho A1 + A2 + .... + Am = B1 + B2 + ... + Bn
    Xầy dựng ma trận m x n sao cho tổng các số ở hàng thứ i bằng Ai, tổng các số ở cột thứ j bằng Bj.
    Đã được chỉnh sửa lần cuối bởi nguyenhoaibao : 04-03-2009 lúc 09:43 AM. Lý do: sửa

  2. #2
    Ngày gia nhập
    01 2009
    Nơi ở
    Hà Nội
    Bài viết
    205

    Đề bài quái vật vậy bạn?
    tổng các số ở hàng thứ i bằng Ai, tổng các số ở hàng thứ j bằng Bj
    Phải là hàng và cột chứ?

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

    Bạn có thể nói rõ hơn yêu cầu của bạn khôn g
    Cho tổng A1 + A2 + A3 + ... + Am = B1 + B2 + B3 + ... + Bn
    Cho biểu thức này để làm gì vậy
    Nó có liên quan đến yêu cầu xây dưng ma trận cấp mxn với tổng các số ở hàng thứ i bằng Ai, tổng các số ở hàng thứ j bằng Bj không

    Bạn nói rõ hơn đi

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

    uh`.mình lộn.phải là tổng các cột ờ hàng j bằng Bj.nhớ coi lại jum nha

  5. #5
    Ngày gia nhập
    02 2008
    Nơi ở
    Việt Nam
    Bài viết
    577

    Mình đưa ra hướng làm như này:
    - Điền số MAX nhất có thể tại vào lần lượt các vị trí của matrix sao cho nó thảo mãn điều kiện tổng giá trị trong hàng vào cột tương ứng không lớn hơn giá trị chốt đầu.

    Chạy tay thì ok rùi, có thời gian mình sẽ hiện thực hóa code.

    Mọi người test thử code này dùm, có vẻ chạy ổn rồi đấy.
    Ah, cái tính tổng mảng để kiểm tra 2 mảng nhập, nhưng chưa đưa vào hàm chính.

    C Code:
    1. /* Cho 2 mang thoa man dk:
    2.            A1 + A2 + ... + An = B1 + B2 + ... + Bn
    3.    Tao ma tran m x n sao cho:
    4.            - Tong cac phan tu hang i bang Ai
    5.            - Tong cac phan tu cot j bang Bj
    6. */
    7. #include <stdio.h>
    8. #include <stdlib.h>
    9. /*
    10. */
    11. void InputArray(int *&a, int n);
    12. void OutputMatrix(int **a, int row, int col);
    13. int SumArray(int *a, int n);
    14. int SumColumn(int **&a, int row, int i);
    15. int SumRow(int **&a, int col, int i);
    16. void Create(int **&A, int row, int col);
    17.  
    18. int *a,*b, n, m;
    19. int **A;
    20.  
    21. int main()
    22. {
    23.     printf(" * Enter number of A n = ");scanf("%d",&n);
    24.     InputArray(a,n);
    25.     printf(" * Enter number of B m = ");scanf("%d",&m);
    26.     InputArray(b,m);
    27.     printf(" * Matrix after created.\n");
    28.     Create(A,n,m);
    29.     OutputMatrix(A,n,m);
    30. }
    31.  
    32. void InputArray(int *&a, int n)
    33. {
    34.     a = (int*) malloc (n*sizeof(int));
    35.     for (int i=0; i<n; i++)
    36.     {
    37.         printf(" - Enter: ");scanf("%d",&a[i]);
    38.     }
    39. }
    40.  
    41. int SumArray(int *a, int n)
    42. {
    43.     int s=0;
    44.     for (int i=0; i<n; i++)
    45.         s += a[i];
    46.     return s;
    47. }
    48.  
    49. int SumColumn(int **&a, int row, int i)
    50. {
    51.     int s=0;
    52.     for (int j=0; j<row; j++)
    53.         s += a[j][i];
    54.     return s;
    55. }
    56.  
    57. int SumRow(int **&a, int col, int i)
    58. {
    59.     int s=0;
    60.     for (int j=0; j<col; j++)
    61.         s += a[i][j];
    62.     return s;
    63. }
    64.  
    65. void Create(int **&A, int row, int col)
    66. {
    67.     /*int *a,*b, n=3, m=3;
    68.     InputArray(a,n);
    69.     InputArray(b,m);*/
    70.  
    71.     A = (int**) malloc (row*sizeof(int*));
    72.     for (int i=0; i<row; i++)
    73.         A[i] = (int*) malloc (col*sizeof(int));
    74.  
    75.     for (int i=0; i<row; i++)
    76.         for (int j=0; j<col; j++)
    77.             A[i][j]=0;
    78.  
    79.     for (int i=0; i<row; i++)
    80.         for (int j=0; j<col; j++)
    81.         {
    82.             int k=a[i];
    83.             while (1)
    84.             {
    85.                 A[i][j]=k;
    86.                 if(SumRow(A,col,i)<=a[i] && SumColumn(A,row,j)<=b[j]) break;
    87.                 k--;
    88.             }
    89.         }
    90. }
    91.  
    92. void OutputMatrix(int **a, int row, int col)
    93. {
    94.     for (int i=0; i<row; i++)
    95.     {
    96.         for (int j=0; j<col; j++) printf("%6d",a[i][j]);
    97.         printf("\n");
    98.     }
    99. }

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

    Mặc định Bài tập về mảng 2 chiều đây!!!!!!!!!

    Trích dẫn Nguyên bản được gửi bởi QuangHoang Xem bài viết
    Mình đưa ra hướng làm như này:
    - Điền số MAX nhất có thể tại vào lần lượt các vị trí của matrix sao cho nó thảo mãn điều kiện tổng giá trị trong hàng vào cột tương ứng không lớn hơn giá trị chốt đầu.

    Ý anh Hoang là sao vậy ah? anh có thể hướng dẫn em cụ thể hơn được ko?

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