Công cụ bảo vệ mã nguồn .NET mạnh nhất, không thể unpack, miễn phí cho các khách hàng đầu tiên đăng ký.
Trang 3 trên tổng số 6 Đầu tiênĐầu tiên 12345... Cuối cùngCuối cùng
Từ 21 tới 30 trên tổng số 60 kết quả

Đề tài: Bài tập giải thuật | Bài tập thuật toán cơ bản

  1. #21
    Ngày gia nhập
    07 2006
    Nơi ở
    Hanoi, Vietnam
    Bài viết
    2,750

    Mặc định Bài tập giải thuật | Bài tập thuật toán cơ bản

    Trích dẫn Nguyên bản được gửi bởi Aptechite
    Về giải thuật, bác làm như thế là được rồi, nhưng có điều bố trí trường hợp không được hợp lí cho lắm,em thấy thường thì khi giải phương trình bậc hai, người ta xét trường hợp a khác 0 trước. Khi đưa vào giải thuật cũng dễ nhìn và dễ kiểm tra hơn.
    Chương trình này xét a!=0 trước đó thôi.

    Vấn đề xét trước hay sau, Dreaminess nghĩ không sao, quan trọng là bố trí sao cho dễ hiểu mà thôi.
    Công cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.
    Email: admin[@]congdongcviet.com | CC to: info[@]congdongcviet.com
    Phone: 0972 89 7667 (Office: 04 6329 2380)
    Yahoo & Skype: dreaminess_world (Vui lòng chỉ rõ mục đích ngay khi liên hệ, cảm ơn!)

    Một người nào đó coi thường ý thức kỷ luật cũng có nghĩa là người đó đã coi thường tương lai số phận của chính bản thân người đó. Những người coi thường ý thức kỷ luật sẽ không bao giờ có được sự thành công trong sự nghiệp!

  2. #22
    Ngày gia nhập
    09 2006
    Bài viết
    20

    Mặc định Cộng trừ nhân chia 2 phân số

    C Code:
    1. //cong tru nhan chia 2 phan so
    2. //thay ban gi post bai nhiều quá nên mình xin post ké.ở đây đề bài không yêu cầu rút gọn nên mình không rút gọn,mình chỉ cộng trừ nhân chia 2 phân số thôi
    3. struct phanso
    4. {
    5.   int tu;
    6.   int mau;
    7. };
    8. typedef struct phanso PHANSO;
    9.  
    10. void nhap(PHANSO &P);
    11. void xuat(PHANSO P);
    12. PHANSO tong(PHANSO P,PHANSO Q);
    13. PHANSO hieu(PHANSO P,PHANSO Q);
    14. PHANSO tich(PHANSO P,PHANSO Q);
    15. PHANSO thuong(PHANSO P,PHANSO Q);
    16.  
    17. void main()
    18. {
    19.   PHANSO P,Q,R;
    20.   clrscr();
    21.   cout<<"nhap phan so thu nhat:";
    22.   nhap(P);
    23.   cout<<endl<<"nhap phan so thu hai:";
    24.   nhap(Q);
    25.   xuat(P);
    26.   xuat(Q);
    27.   cout<<endl;
    28.   //R=tong(P,Q);
    29.   R=hieu(P,Q);
    30.   cout<<"ket qua"<<R.tu<<"/"<<R.mau;
    31.   getch();
    32. }
    33. void nhap(PHANSO &P)
    34. {
    35.   cout<<endl<<"nhap tu so:";
    36.   cin>>P.tu;
    37.   cout<<endl<<"nhap mau so:";
    38.   cin>>P.mau;
    39. }
    40.  
    41. void xuat(PHANSO P)
    42. {
    43.   cout<<endl<<P.tu<<"/"<<P.mau;
    44. }
    45.  
    46. PHANSO tong(PHANSO P,PHANSO Q)
    47. {
    48.   PHANSO R;
    49.   R.tu =P.tu*Q.mau+Q.tu*P.mau;
    50.   R.mau=P.mau*Q.mau;
    51.   return R;
    52. }
    53. PHANSO hieu(PHANSO P,PHANSO Q)
    54. {
    55.   PHANSO R;
    56.   R.tu =P.tu*Q.mau-Q.tu*P.mau;
    57.   R.mau=P.mau*Q.mau;
    58.   return R;
    59. }
    60. PHANSO nhan(PHANSO P,PHANSO Q)
    61. {
    62.   PHANSO R;
    63.   R.tu =P.tu*Q.tu;
    64.   R.mau=P.mau*Q.mau;
    65.   return R;
    66. }
    67. PHANSO chia(PHANSO P,PHANSO Q)
    68. {
    69.   PHANSO R;
    70.   R.tu =P.tu*Q.mau;
    71.   R.mau=P.mau*Q.tu;
    72.   return R;
    73. }

  3. #23
    Ngày gia nhập
    09 2006
    Bài viết
    20

    Mặc định Cộng trừ nhân chia 2 số phức

    //cong trù nhân chia 2 số phức
    số phức là cố có dạng a+b*i, trong đó a là phân thực,b là phần ảo và i là đơn vị ảo.
    VD:3+5*i,là số phức
    (3+5*i)+(4+2*i)=7+5*i,đó là toán cộng.
    ở đây có định nghĩa đày đủ về số phức nè
    http://vi.wikipedia.org/wiki/Tr%C6%B...1_ph%E1%BB%A9c
    còn đây là bài của mình làm
    C Code:
    1. struct sophuc
    2. {
    3.   float thuc;
    4.   float ao;
    5. };
    6. typedef struct sophuc SOPHUC;
    7.  
    8. void nhap(SOPHUC &P);
    9. void xuat(SOPHUC P);
    10. SOPHUC tong(SOPHUC P,SOPHUC Q);
    11. SOPHUC hieu(SOPHUC P,SOPHUC Q);
    12. SOPHUC tich(SOPHUC P,SOPHUC Q);
    13. SOPHUC thuong(SOPHUC P,SOPHUC Q);
    14.  
    15. void main()
    16. {
    17.   SOPHUC P,Q,R;
    18.   clrscr();
    19.   cout<<"nhap so phuc thu nhat:";
    20.   nhap(P);
    21.   cout<<endl<<"nhap so phuc thu hai:";
    22.   nhap(Q);
    23.   xuat(P);
    24.   xuat(Q);
    25.   cout<<endl;
    26.   R=thuong(P,Q);//muon tinh tong hieu hay tich thi thay bang vao chu thuong
    27.  
    28.   cout<<"ket qua:"<<R.thuc<<"+("<<R.ao<<"*i)";
    29.   getch();
    30. }
    31. void nhap(SOPHUC &P)
    32. {
    33.   cout<<endl<<"nhap phan thuc:";
    34.   cin>>P.thuc;
    35.   cout<<endl<<"nhap phan ao:";
    36.   cin>>P.ao;
    37. }
    38.  
    39. void xuat(SOPHUC P)
    40. {
    41.   cout<<endl<<P.thuc<<"+("<<P.ao<<"*i)";
    42. }
    43.  
    44. SOPHUC tong(SOPHUC P,SOPHUC Q)
    45. {
    46.   SOPHUC R;
    47.   R.thuc=P.thuc+Q.thuc;
    48.   R.ao=P.ao+Q.ao;
    49.   return R;
    50. }
    51. SOPHUC hieu(SOPHUC P,SOPHUC Q)
    52. {
    53.   SOPHUC R;
    54.   R.thuc=P.thuc-Q.thuc;
    55.   R.ao=P.ao-Q.ao;
    56.   return R;
    57. }
    58. SOPHUC tich(SOPHUC P,SOPHUC Q)
    59. {
    60.   SOPHUC R;
    61.   R.thuc=P.thuc*Q.thuc-P.ao*Q.ao;
    62.   R.ao=P.ao*Q.thuc+P.thuc*Q.ao;
    63.   return R;
    64. }
    65. SOPHUC thuong(SOPHUC P,SOPHUC Q)
    66. {
    67.   SOPHUC R;
    68.   R.thuc=(P.thuc*Q.thuc+P.ao*Q.ao)/(P.ao*P.ao+Q.ao*Q.ao);
    69.   R.ao  =(P.ao*Q.thuc-P.thuc*Q.ao)/(P.ao*P.ao+Q.ao*Q.ao);
    70.   return R;
    71. }

  4. #24
    Ngày gia nhập
    09 2006
    Bài viết
    20

    Mặc định bài tập cơ bản số 40

    C Code:
    1. //đôi chuổi thường sang chuổi hoa
    2. #include<conio.h>
    3. #include<stdio.h>
    4. #include<iostream.h>
    5. #include<string.h>
    6. void main(){
    7.   char *s,*p;
    8.   clrscr();
    9.   printf("nhap chuoi s:");
    10.   gets(s);
    11.   //cach 1
    12.   /*
    13.    p=strupr(s);
    14.   puts(p);
    15.   */
    16.   //cach 2
    17.   for(int i=0;i<strlen(s);i++){
    18.     if(s[i]>'a'&&s[i]<'z')
    19.        s[i]-=32;//32 ở dây nghĩa là mã ascii chuyển từ chữ thường sang chũ  
    20.                    // hoa tương ứng là 32
    21.   }
    22.   puts(s);
    23.   getch();
    24. }
    Đã được chỉnh sửa lần cuối bởi trieuanhl : 02-10-2006 lúc 08:32 PM.

  5. #25
    Ngày gia nhập
    09 2006
    Bài viết
    711

    Ct có lỗi nặng lắm. Memory alloc cho pointer s lấy đâu ra mà gets vào vùng memory point by s. Lỗi dạng này sẽ làm crash app.

  6. #26
    Ngày gia nhập
    08 2006
    Nơi ở
    Hải Phòng
    Bài viết
    218

    Mặc định Bài tập giải thuật | Bài tập thuật toán cơ bản

    Đúng là dùng thế có lỗi thật, trình biên dịch thông báo "Possible using s before definition" do ở đây s là con trỏ chuỗi nhưng lại chưa được khởi tạo chuỗi nào cả. Chương trình trên chạy đúng là do bên trong trỏ s đã chứa địa chỉ không xác định nào đó, khi sử dụng nó cho hàm gets thì hàm này sẽ đưa các kí tự vào địa chỉ s+1, s+2... y như một chuỗi, và sau khi xử lý sẽ cho ra kết quả đúng, tuy nhiên vùng địa chỉ s+1, s+2.... là vùng ta không kiểm soát được rất có thể lại là địa chỉ của một biến nào đó khác trong chương trình. Bạn có thể kiểm tra điều này bằng cách gán s=NULL rồi xem chương trình có còn chạy đúng nữa không.

    C Code:
    1. #include<conio.h>
    2. #include<stdio.h>
    3. #include<iostream.h>
    4. #include<string.h>
    5. void main()
    6. {
    7.     char *s ;
    8.     clrscr();
    9.     s=NULL;
    10.     printf("nhap chuoi s:");
    11.     gets(s);
    12.     //cach 1
    13.     /*
    14.     p=strupr(s);
    15.     puts(p);
    16.     */
    17.     //cach 2
    18.     for(int i=0;i<strlen(s);i++)
    19.     {
    20.         if(s[i]>'a'&&s[i]<'z')
    21.         s[i]-=32;//32 ? dây nghia là mã ascii chuy?n t? ch? thu?ng sang chu
    22.         // hoa tuong ?ng là 32
    23.     }
    24.     puts(s);
    25.     getch();
    26. }

    Cách giải quyết vấn đề này rất đơn giản hoặc khai báo thêm mảng char a[100]; rồi gán s=a; hoặc khai báo s là char s[100];

  7. #27
    Ngày gia nhập
    08 2006
    Nơi ở
    Hải Phòng
    Bài viết
    218

    Mặc định Bài tập cơ bản 21:

    BÀI 21 :

    1. Ý TƯỞNG THUẬT TOÁN :
    Ở bài này sau khi nhập ma trận ta gán các phần tử về mảng 1 chiều sau đó sắp xếp tăng dần theo dạng xoắn ốc bằng cách gán các phần tử ở mảng b cho ma trận a .
    2. Ý NGHĨA MỘT SỐ BIẾN TRONG BÀI :
    a. Trong bài bao gồm các biến toàn cục:
    i. a[50][50] : mảng chứa tối đa 50 dòng 50 cột
    ii. b[2500] :chứa tối đa 2500 phần tử
    iii. k : số phần tử của mảng b
    iv. n , m : số dòng và số cột của ma trận a
    b. Trong hàm void ganlai_2c() : có nhiệm vụ gán lại mảng a theo hình xoắn ốc có :
    i. Biến tmpcot = số cột -1 ( vì ta cho I chạy từ 0 )
    ii. Biến tmpdong= số dòng -1 ( tương tự )
    iii. Biến ptb : nghĩa là phần tử của b sẽ gán cho ma trận a và vị trí sẽ tăng lên sau khi gán ( nghĩa là chạy lên phần tử kế tiếp ) .
    iv. dem : đếm số lần gán để khống chế việc (VD : ma trận 3 x 4 thì chỉ gán 12 lần mà thôi )
    v. ax : là biến tăng dòng vào bên trong , nó phụ thuộc vào x thay đổi theo x để tăng chỉ số các biên đi sâu vào ma trận .
    vi. Dòng for thứ nhất
    Gán cho dòng thứ nhất
    vii. Dòng for thứ hai :
    1. Chạy từ tmpdong : là biến biên cột cố định
    j : chạy từ 1 vì đã sắp xếp cạnh thứ nhất rồi , j tăng sẽ gán từ từ ma trận b vào cột biên .
    2. Sau vòng for này ta phải xét nếu dem = m*n thì cho dừng tránh trường hợp gán quá số phần tử của ma trận b
    viii. Dòng for thứ 3 :
    1. Biến z được gán bằng tmpcot -1 có nghĩa là xét phần tử bên trong cột biên trở về ( tránh trường hợp xét phần tử ở cột vừa gán xong ) .



    ix. Dòng for thứ 4 :
    1. biến t được gán bằng tmpdong – 1 , t giảm đến khi nào > ax . Vì bỏ đi phần tử nằm trên cùng cột nhưng ở dòng trên của nó .

    3. BÀI GIẢI :
    C Code:
    1. #include<stdio.h>
    2. #include<conio.h>
    3. int a[50][50],n,m,b[100],k=0;   //Khoi tao mang toan cuc
    4. /*---------------Nhap Mang Ban Dau------------------------*/
    5. void nhapmang()
    6. {
    7.     printf("Ban Hay Nhap so dong va so cot cua ma tran ");
    8.     scanf("%d%d",&n,&m);
    9.     for(int i=0;i<n;i++)
    10.         for(int j=0;j<m;j++)
    11.         {
    12.             printf("a[%d][%d]",i,j);
    13.             scanf("%d",&a[i][j]);
    14.         }
    15. }
    16. /*--------------Xuat Mang Ban Dau------------------------*/
    17. void xuat()
    18. {
    19.     for(int i=0;i<n;i++)
    20.     {
    21.         for(int j=0;j<m;j++)
    22.             printf("%3d",a[i][j]);
    23.  
    24.             printf("\n");
    25.     }
    26. }
    27. /* -----------Gan Sang Mang 1 chieu va sap xep tang dan ---------*/
    28. void gan1c()
    29. {
    30.     for(int i=0;i<n;i++)
    31.         for(int j=0;j<m;j++)
    32.         {
    33.             b[k++]=a[i][j];
    34.         }
    35.  
    36. }
    37. void sapxep()
    38. {
    39.     int tmp;
    40.     for(int i=0;i<k-1;i++)
    41.         for(int j=i+1;j<k;j++)
    42.         {
    43.             if(b[i]>b[j])
    44.             {
    45.                 tmp=b[i];
    46.                 b[i]=b[j];
    47.                 b[j]=tmp;
    48.             }
    49.         }
    50. }
    51. /*-----------Gan lai mang 2 chieu luc dau && Xuat-----------------------*/
    52.  
    53. void ganlai_2c()
    54. {
    55.     int x=0,tmpcot=m-1,tmpdong=n-1,ptb=0,ax,dem=0;
    56.     while(dem<n*m)//Lap lai qua trinh gan cho den het ma tran
    57.     {
    58.        ax=x;
    59.        for(int i=ax;i<=tmpcot;i++)  //gan vao bien 1 hang canh thu 1
    60.        {
    61.             a[ax][i]=b[ptb++] ;
    62.             dem++;
    63.        }
    64.        for(int j=ax+1;j<=tmpdong;j++)  //gan vao bien2 cot canh thu 2
    65.        {
    66.             a[j][tmpcot]=b[ptb++];
    67.             dem++;
    68.        }
    69.         if(dem==n*m)
    70.                 break;
    71.        for(int z=tmpcot-1;z>=ax;z--)  // gan vao bien 3 hang canh thu 3
    72.        {
    73.             a[tmpdong][z]=b[ptb++];
    74.             dem++;
    75.        }
    76.        for(int t=tmpdong-1;t>ax;t--)  // gan vao bien 4 hang canh thu 4
    77.        {
    78.             a[t][ax]=b[ptb++];
    79.             dem++;
    80.        }
    81.        x++;
    82.        tmpcot--;  //giam vi tri tung bien de thanh soan oc
    83.        tmpdong--;
    84.     }
    85. }
    86. void xuata()
    87. {
    88.     textcolor(-4);
    89.     cprintf("Mang sau khi sap xep la :\n");
    90.     printf("\n\n");
    91.     for(int i=0;i<n;i++)
    92.     {
    93.         for (int j=0;j<m;j++)
    94.         {
    95.             //textcolor(4);
    96.             printf("%4d",a[i][j]);
    97.         }
    98.         printf("\n\n");
    99.     }
    100. }
    101. /*--------------------------------MAIN--------------------------------*/
    102. void main()
    103. {
    104.     clrscr();
    105.     nhapmang();
    106.     xuat();
    107.     gan1c();
    108.     sapxep();
    109.     ganlai_2c();
    110.     xuata();
    111. getch();
    112. }
    HẾT

  8. #28
    Ngày gia nhập
    08 2006
    Nơi ở
    Hải Phòng
    Bài viết
    218

    Mặc định Bài tập cơ bản 22:

    C Code:
    1. void xuatmang(int a[100],int n)
    2. {
    3.     for(int i=0;i<n;i++)
    4.         printf("%3d",a[i]);
    5. }
    6.  
    7. void main()
    8. {
    9.     clrscr();
    10.     int a[100],n;
    11.     printf(" Nhap so phan tu cua mang ");
    12.     scanf("%d",&n);
    13.     nhapmang(a,n);
    14.     xuatmang(a,n);
    15.     sapxep(a,n);
    16.     printf("\n Mang sau khi duoc sap xep la \n");
    17.     xuatmang(a,n);
    18.     getch();
    19. }
    HẾT

  9. #29
    Ngày gia nhập
    08 2006
    Nơi ở
    Hải Phòng
    Bài viết
    218

    Mặc định Bài tập cơ bản 23

    BÀI 23 :
    1. Ý TƯỞNG THUẬT TOÁN :
    a. Trước hết viết hàm tìm số nguyên tố .
    b. Cho vòng lặp đễ xác định được số nguyên tố đầu tiên và gán cho nó là lớn nhất .
    c. Sau đó tạo một vòng lặp quét hết các phần tử và kiểm tra nếu thỏa
    i. Lớn hơn số nguyên tố đựợc xác định lúc đầu và
    ii. Là số nguyên tố
    d. Ta sẽ tìm được số nguyên tố lớn nhất .

    2. Ý NGHĨA MỘT SỐ BIẾN TRONG BÀI :
    a. Ở bài này chỉ có hàm int ktnt(int x ) : trong đó x là đối số cần kiểm tra i là biến chạy , dem : là đếm số lần chia hết cho i
    b. Hàm void search(int a[100] , int n ) , trong đó :
    i. max : là biến dùng để gán giá trị là số nguyên tố lớn nhất
    ii. vt : là tìm vị trí của số nguyên tố lớn nhất
    c. Hàm main() có :
    i. a[100] : mảng tối đa có 100 phần tử
    ii. n : số phần tử trong mảng
    3. BÀI GIẢI :

    C Code:
    1. #include<stdio.h>
    2. #include<conio.h>
    3.  
    4. void nhapmang(int a[100],int n)
    5. {
    6.     for(int i=0;i<n;i++)
    7.     {
    8.         printf("a[%d]",i);
    9.         scanf("%d",&a[i]);
    10.     }
    11. }
    12.  
    13. int ktnt(int x)
    14. {
    15.     int dem=0;
    16.     for(int i=1;i<=x;i++)
    17.     {
    18.         if(x%i==0)
    19. dem++;
    20.     }
    21.     if(dem==2)
    22.         return 1;
    23.     else
    24.         return 0;
    25. }
    26.  
    27. void xuatmang(int a[100],int n)
    28. {
    29.     for(int i=0;i<n;i++)
    30.         printf("%3d",a[i]);
    31. }
    32.  
    33. void search(int a[100],int n)
    34. {
    35.     int max=0,vt;      // vi so nguyen to luon lon hon 0
    36.     for(int i=0;i<n;i++)
    37.     {
    38.     if(ktnt(a[i]))// neu kiem tra dung thi gan cho max
    39.         {
    40.         if(a[i]>max) // neu phan tu thu i lon hon max thi gan cho max
    41.                 {
    42.                     max=a[i];
    43.                     vt=i+1;
    44.                 }
    45.  
    46.         }
    47.     }
    48.     if(max==0)
    49.         printf("Trong mang khong co so nguyen to ");
    50.     else
    51. printf(" \n So nguyen to lon nhat trong mang la %d  tai phan tu so %d" , max,vt);
    52. }
    53.  
    54.  
    55.  
    56.  
    57.  
    58. void main()
    59. {
    60.     clrscr();
    61.     int a[100],n;
    62.     printf(" Nhap so phan tu cua mang ");
    63.     scanf("%d",&n);
    64.     nhapmang(a,n);
    65.     xuatmang(a,n);
    66.     search(a,n);
    67.     getch();
    68. }

  10. #30
    Ngày gia nhập
    08 2006
    Nơi ở
    Hải Phòng
    Bài viết
    218

    Mặc định Bài tập cơ bản 24:

    BÀI 24

    1. Ý TƯỞNG THUẬT TOÁN :
    a. Phải có một hàm tính tổng các phần tử trên một hàng và có một hàm hoán đổi vị trí các phần tử hai hàng với nhau .
    b. Sau đó viết một hàm có vòng lặp kiểm tra và hoán đổi đồng thời viết một hàm sắp xếp các phần tử tăng dần trên từng hàng .
    2. Ý NGHĨA MỘT SỐ BIẾN TRONG BÀI :
    a. Ở bài này thì có các hàm :
    i. Hàm int tong_hang(int a[50][50] , int m ,int k) : hàm này có nhiệm vụ trả về con số có giá trị là tổng của hàng k truyền vào .trong hàm có biến t : làm nhiệm vụ cộng dồn , z : là biến chạy vòng lặp
    ii. Hàm void swap_hang(int a[50][50] , int m ,int x ,int y ) : làm nhiệm vụ hoán đổi các phần tử giữa hai hàng x và y .
    iii. Hàm void sapxep( int a[50][50] , int n ,int m) : làm nhiệm vụ sắp xếp theo đề bài . Trong hàm có các biến :
    1. k : là biến giới hạn hàng xét chỉ chạy tới dòng kế cuối mà thôi
    2. z : là biến ứng với một giá trị của k thì z sẽ quét từ k+1 cho đến dòng cuối cùng
    3. Đồng thời trong hàm còn có sắp xếp các phần tử tăng dần theo từng hàng có 3 dòng for
    a. Vòng for thứ nhất : giới hạn xét hàng
    b. Vòng for thứ hai : lấy từng phần tử đi so sánh
    c. Vòng for thứ ba : sẽ chạy các phần tử tiếp theo ứng từ giá trị phần tử của Vòng for thứ hai màquét cho đến hết số phần tử trên hàng đó rồi sắp xếp .
    iv. Ở hàm main() : có các biến a[50][50] : mảng tối đa 50 hàng và 50 cột , n : số hàng của mảng , m : số cột của mảng .

    3. BÀI GIẢI :

    C Code:
    1. #include<stdio.h>
    2. #include<conio.h>
    3.  
    4. /*----------------Nhap Mang & Xuat Mang -----------------*/
    5.  
    6. void nhapmang(int a[50][50],int n,int m)
    7. {
    8.     for(int i=0;i<n;i++)
    9.       for(int j=0;j<m;j++)
    10.         {
    11.             printf("a[%d][%d]",i,j);
    12.             scanf("%d",&a[i][j]);
    13.         }
    14. }
    15.  
    16. void xuatmang(int a[50][50],int n,int m)
    17. {
    18.     for(int i=0;i<n;i++)
    19.     {
    20.         for(int j=0;j<m;j++)
    21.         {
    22.             printf("%3d",a[i][j]);
    23.         }
    24.         printf("\n");
    25.     }
    26.  
    27. }
    28. /*------------Tinh Tong cac phan tu tren hang ------------*/
    29.  
    30. int tong_hang(int a[50][50],int m,int k)
    31. {
    32.     int t=0;
    33.         for(int z=0;z<m;z++)
    34.             t+=a[k][z];
    35.     return t;
    36. }
    37.  
    38. /*--------------Hoan doi Vi Tri cua hai hang -------------*/
    39.  
    40. void swap_hang(int a[50][50],int m,int x ,int y)
    41. {
    42.     int tmp;
    43.     for(int i=0;i<m;i++)
    44.     {
    45.         tmp=a[x][i];
    46.         a[x][i]=a[y][i];   //Doi cho phan tu tuong ung cua hai hang
    47.         a[y][i]=tmp;
    48.     }
    49. }
    50. /*----------------Goi hai ham tren sap xep va sap xep tang dan tung hang----*/
    51.  
    52. void sapxep(int a[50][50],int n,int m)
    53. {
    54.     int k=0,z,tmp;
    55.     while(k<n-1)  // sap xep tang theo tung cai tong cua hang
    56.     {
    57.         for(z=k+1;z<n;z++)
    58.         {
    59.             if(tong_hang(a,m,k)>tong_hang(a,m,z))
    60.                 swap_hang(a,m,k,z);
    61.         }
    62.         k++;
    63.     }
    64.     // Sap xep tung hang tang dan
    65.  
    66.     for(int i=0;i<n;i++)
    67.         for(int j=0;j<m;j++)
    68.             for(int p=j+1;p<m;p++)
    69.             {
    70.                 if(a[i][j]>a[i][p])
    71.                 {
    72.                     tmp=a[i][j];
    73.                     a[i][j]=a[i][p];
    74.                     a[i][p]=tmp;
    75.                 }
    76.             }
    77.  
    78. }
    79. /*--------------------Ham Chinh --------------------------------*/
    80.  
    81. void main()
    82. {
    83.     clrscr();
    84.     int a[50][50],n,m;
    85.     printf("Nhap so dong");
    86.     scanf("%d",&n);
    87.     printf("Nhap so cot");
    88.     scanf("%d",&m);
    89.     nhapmang(a,n,m);
    90.     xuatmang(a,n,m);// Xuat Mang Luc Dau
    91.     sapxep(a,n,m);
    92.     printf("\n\nsau khi sap xep mang la\n");
    93.     xuatmang(a,n,m);// Xuat Mang Luc sau
    94.     getch();
    95. }
    HẾT
    Công cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.

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

  1. Các thuật toán sắp xếp trong lập trình C | Cấu trúc dữ liệu và giải thuật
    Gửi bởi iamvtn trong diễn đàn Thủ thuật, Tutorials CTDL & Giải thuật
    Trả lời: 8
    Bài viết cuối: 11-02-2017, 04:44 PM
  2. Giải thuật shaker sort. Giúp mình giải thuật với?
    Gửi bởi nguyenhai trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 6
    Bài viết cuối: 29-01-2015, 10:53 PM
  3. Bài tập C Cần giải giúp 3 câu trong đề thi kĩ thuật lập trình C và Cấu trúc dữ liệu và giải thuật
    Gửi bởi nguyenthi0602 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 24-09-2012, 08:42 PM
  4. Xin Tài liệu về thuật toán chủ nhà băng, giải thuật Deadlock, quản lý bộ nhớ?
    Gửi bởi huutrieu2005 trong diễn đàn Tài liệu, ebooks và công cụ
    Trả lời: 2
    Bài viết cuối: 28-12-2010, 10:10 AM
  5. lưu đồ giải thuật bài mã đi tuần thuật toán quay lui vét cạn. Giúp mình với?
    Gửi bởi katemat000 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 1
    Bài viết cuối: 05-01-2010, 10: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