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

Đề tài: cách sử dụng hàm

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

    Mặc định cách sử dụng hàm

    bài này của t bị sai mà k hiểu lỗi mà ct thông báo, cũng k biết phỉa chỉnh thế nào, mọi người ngó qua giúp tớ nha......


    #include<iostream.h>
    #include<stdio.h>
    #include<string.h>
    #include<stdlib.h>
    void nhap (int a[])
    {
    int i,j,n;
    do {
    cout<<"n = ";cin>>n;
    if(n<2||n>5)
    cout<<"\n nhap lai n ";}
    while (n<2 ||n>5);
    // nhap mtran
    for(i=0;i<n;i++)
    for(j==0;i<n;j++)
    {cout<<" a["<<i<<"]["<<j<<"]= ";cin>> a[i][j];}

    }
    // in ma tran
    void in (int a[])
    {
    int i,j,n;
    cout<<"\n ma tran da nhap la: ";
    for(i=0;i<n;i++)
    for(j=0;j<n;j++)
    cout<<a[i][j]<<"\t";cout<<"\n";
    }
    // tim vi tri so nguyen to trong ma tran
    void tim_so_ngto()
    {
    int a[5][5],i,n,j;
    int test=0;
    for (i=0;i<n;i++)
    for (j=0;j<n;j++)
    {
    for(int k=2;k<a[i][j];k++)
    if(a[i][j]%k==0)test=1;
    cout<<"\n vi tri cua so ngto la: "<<a[i][j];
    break;}

    test ==0;
    }
    //in ra hang co tong cac phan tu cao nhat
    void tong_hang_max ()
    { int a[5][5],i,n,j;
    int th[5];
    int max=th[0];

    for(i=0;i<n;i++)
    {for(j=0;j<n;j++)
    th[i]=th[i]+a[i][j];
    if(max<th[i])
    max=th[i];
    cout<<"\n hang co tong cac phan tu lon nhat la: "<<i<<"="<<th[i];
    }
    }
    //sap xep phan tu theo chieu tang dan
    void sapxep()
    { int a[5][5],i,n,j;
    int min=a[0][0];
    for (i=0;i<n-1;i++)
    for(j=i+1;j<n;j++)
    if( a[i][j]<a[0][0])
    {int t=a[0][0];
    a[0][0]=a[i][j];
    a[i][j]=t;
    }
    }
    // chuong trinh
    main()
    { int a[5][5],n;
    cout<<"\n nhap ma tran :";


    nhap(a,n);
    in(a,n);
    // tim_so_ngto();
    //tong_hang_max();
    //sapxep();
    system("pause");

    }

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

    Lỗi mà CT thông báo là lỗi gì. Lỗi tại vị trí nào ?
    Um Mani Padme Hum...!!

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

    C++ Code:
    1. #include<iostream.h>
    2. #include<stdio.h>
    3. #include<string.h>
    4. #include<stdlib.h>
    5.  
    6. using namespace std;
    7.  
    8. void nhap (int a[])
    9. {
    10.         int i,j,n;
    11.         do {
    12.                 cout<<"n = ";
    13.                 cin>>n;
    14.                 if(n<2||n>5)
    15.                         cout<<"\n nhap lai n ";
    16.         } while (n<2 ||n>5);
    17.      
    18.         for(i=0;i<n;i++)
    19.                 for(j==0;i<n;j++)                                     // j == 0 ở đây vô nghĩa
    20.                 {
    21.                         cout<<" a["<<i<<"]["<<j<<"]= ";
    22.                         cin>> a[i][j];                                  // tham số a[] là mảng 1 chiều,
    23.                 }                                                          // ko phải mảng 2 chiều
    24. }
    25.  
    26. // in ma tran
    27. void in (int a[])
    28. {
    29.         int i,j,n;
    30.         cout<<"\n ma tran da nhap la: ";
    31.         for(i=0;i<n;i++)
    32.                 for(j=0;j<n;j++)
    33.                         cout<<a[i][j]<<"\t";cout<<"\n";           // tham số a[] là mảng 1 chiều ,ko phải 2      
    34. }
    35.  
    36. // tim vi tri so nguyen to trong ma tran
    37. void tim_so_ngto()
    38. {
    39.         int a[5][5],i,n,j;
    40.         int test=0;
    41.         for (i=0;i<n;i++)
    42.         for (j=0;j<n;j++)
    43.         {
    44.                 for(int k=2;k<a[i][j];k++)                                // giá trị trong mảng a[][] chưa
    45.                 if(a[i][j]%k==0)test=1;                                  // hề đc khởi tạo thì lấy đâu ra
    46.                 cout<<"\n vi tri cua so ngto la: "<<a[i][j];         //  để so sánh với in ra (?)  
    47.                 break;                                                         // ko có điều kiện break
    48.         }                                                                       // thì cần gì vòng lặp for (?)
    49.         test ==0;                                                            // test == 0 vô nghĩa
    50. }
    51.  
    52.  
    53. void tong_hang_max ()
    54. {
    55.         int a[5][5],i,n,j;
    56.         int th[5];
    57.         int max=th[0];
    58.  
    59.         for(i=0;i<n;i++)
    60.         {
    61.                 for(j=0;j<n;j++)                                             // lỗi tương tự trên với mảng
    62.                 th[i]=th[i]+a[i][j];                                          // a[][] và th[]
    63.                 if(max<th[i])
    64.                 max=th[i];
    65.                 cout<<"\n hang co tong cac phan tu lon nhat la: "<<i<<"="<<th[i];
    66.         }
    67. }
    68.  
    69. //sap xep phan tu theo chieu tang dan
    70. void sapxep()
    71. {
    72.         int a[5][5],i,n,j;
    73.         int min=a[0][0];
    74.         for (i=0;i<n-1;i++)                                                // lỗi tương tự trên
    75.         for(j=i+1;j<n;j++)                                                 //
    76.         if( a[i][j]<a[0][0])
    77.         {
    78.                 int t=a[0][0];
    79.                 a[0][0]=a[i][j];
    80.                 a[i][j]=t;
    81.         }
    82. }
    83.  
    84. // chuong trinh
    85. int main()
    86. {
    87.         int a[5][5],n;
    88.         cout<<"\n nhap ma tran :";
    89.  
    90.         nhap(a,n);                                                 // xem lại tham số trong prototype của
    91.         in(a,n);                                                     // các hàm
    92.  
    93.         system("pause");
    94.         return 0;
    95. }
    Góp ý tí là bạn nếu muốn post bài hỏi thì cũng nên trình bày cẩn thận sạch đẹp , ko thì cũng chả ai hơi đâu sửa code mà mới nhìn đã nhức mắt cả
    Ngoài ra thì bạn cũng nên tự test code trước, complier có thể chỉ ra cho bạn rất nhiều lỗi dễ nhận biết rồi sửa, còn sót lại những lỗi logic , lỗi khó nhận biết thì lúc ấy hãy hỏi.
    Nếu bạn làm đc 2 điều trên thì lúc nào cũng có người sẵn sàng giúp bạn, còn ko thì ...

    Nói về lỗi trong bài của bạn thì các lỗi chủ yếu :
    1. hàm yêu cầu tham số gì thì khi dùng phải cung cấp đúng tham số đó ( vd bạn muốn truyền tham số là hàm 2 chiều thì khi viết hàm, phần tham số ,thì vi trí tương ứng cũng phải là 1 hàm 2 chiều, chứ ko thể là hàm 1 chiều, nhưng lại truyền vào hàm 2 chiều đc )
    2. bạn khai báo ở các scope khác nhau a[][] nhưng bạn nên biết là các mảng đó hoàn toàn khác nhau chứ ko phải là một như bạn nghĩ. cái này cơ bản, bạn tự tìm hiểu thêm qua bạn bè sách vở/ thầy cô giáo
    3. vd test == 0 ,đây là phép so sánh bằng , thường dùng như là điều kiện , vd :
    C++ Code:
    1. if ( a == b ) cout << "Hai so a , b bang nhau" << endl ;
    2. else cout << "Hai so a,b ko bang nhau " << endl;
    4. break , cái này cơ bản, bạn tự tìm hiểu , search trên google ra cả đống hoặc hỏi bạn bè cho nó gọn

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

    cáo lỗi với mọi ng nha, lúc gửi k để ý là đã có chỉnh sửa....
    mảng a t khai báo lại rùi mà sao complie lại có thông báo chưa khai báo biến a @@ (vòng for chỗ nhập ma trận ấy )

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