Trang 2 trên tổng số 6 Đầu tiênĐầu tiên 1234... Cuối cùngCuối cùng
Từ 11 tới 20 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. #11
    Ngày gia nhập
    08 2006
    Nơi ở
    Hải Phòng
    Bài viết
    218

    Mặc định In bản cửu chương trong lập trình C

    BÀI 11

    1. Ý TƯỞNG THUẬT TOÁN :
    Ở bài này ta in ra một dòng hàng ngang trước
    ( VD : 1 x 1 = 1 2 x 1 = 2 3 x 1 = 3 4 x 1 = 4 ……………………10 x 1 =10)
    Sau đó xuống hàng và tăng tích lên
    2. Ý NGHĨA MỘT SỐ BIẾN TRONG BÀI :
    • I : là số dòng của bảng cửu chương đóng vai trò là tích
    • J : là số cột của bảng cửu chương đóng vai trò là thừa số
    3. BÀI GIẢI :
    C Code:
    1. #include<stdio.h>
    2. #include<conio.h>
    3. void main()
    4. {
    5.     clrscr();
    6.     printf("\n\n\t\t\t\tBang Cuu Chuong \n\n\n");
    7.     for(int i=1;i<=10;i++)
    8.     {
    9.         for(int j=2;j<10;j++)
    10.             printf("%2dx%2d=%3d ",j,i,j*i);
    11.         printf("\ n");
    12.     }
    13.     getch();
    14. }
    HẾT

  2. #12
    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 12

    BÀI 12

    1. Ý TƯỞNG THUẬT TOÁN :
    Theo đề bài ta không được lấy từng con số của b nhân với a mà vấn đề là ở chỗ từng số b nhân với từng số a . Để giải quyết bài này ta xét độ dài của cắc số rồi xuất ra theo ý muốn của mình , ở đây tôi chỉ nêu ra phần ý tưởng của thuật toán mà thôi . Trước hết bạn hãy liệt kê tất cả các biến trong bài có thể phát sinh ( VD : cần các biến tạm của hai số a và b để khi thực hiện thuật toán ta vẫn không làm ảnh hưởng giá trị của hai số a và b khi cần thiết sử dụng đến chúng , tiếp đến là bién nhớ và các biến lưu động và cộng dồn ; lưu động ở đây có nghĩa là cứ một hàng đơn vị thì tăng lên 10 .

    2. Ý NGHĨA MỘT SỐ BIẾN TRONG BÀI :
    Trong bài này ta có rất nhiều biến :
    A. Các biến dùng để xuất ra theo ý muốn và cân đối phép nhân gồm : i,xuat,dem1=5,dem2=5 , p =0 .
    B. Các biến dùng trong thuật toán gồm :
    1. a, b : là hai con số được input
    2. x=a , y=tmpb=b , là các biến gán tạm thời cho hai số trên để khi tính toán có thay đổi cũng không ảnh hưởng đến hai số đó khi chúng ta cần thiết sử dụng tới nó .
    3. biến demtmp : có kiểu dữ liệu int là biến tính độ dài số a
    4. biến t : có kiểu int dùng để chứa từng con số b nhân với từng số a .
    5. biến nho : để nhớ số hàng chục của số t khi t > 10
    6. biến k có kiểu dữ liệu là double dùng để nhân lên 10 mỗi khi biến s cộng
    7. biến s : là biến cộng dồn lại kết quả của một số b nhân với từng số a cho đến hết số a sau đó xuất ra số s là một hàng
    8. tương tự như biến k còn có biến h dùng để cộng dồn vào biến kq .
    9. biến kq : là biến kết quả của phép nhân được tính bằng cách cộng dồn s vào và nhân h khi cộng .
    3. BÀI GIẢI :
    C Code:
    1. #include<stdio.h>
    2. #include<conio.h>
    3. #include<math.h>
    4. void main()
    5. {
    6.     clrscr();
    7.     int i,nho=0,xuat,dem1=5,dem2=5,in,p=0,t;
    8.     long a,b,x,y,tmpb;
    9.     double s,k=1,kq=0,h=1;
    10.     do
    11.     {
    12.         printf("Ban Hay Nhap Vao So a= ");
    13.         scanf("%ld",&a);
    14.         printf("Ban Hay Nhap Vao So b= ");
    15.         scanf("%ld",&b);
    16.     }while((a<=0)||(b<=0))  ;
    17.  
    18. x=a;y=tmpb=b;  //Gan cac bien tam thoi de khong anh huong hai so a & b
    19.         while(x>0)
    20.         {
    21.             x=x/10;
    22.             dem1++;// dem xem a co bao nhieu chu so  + 5
    23.         }
    24.         while(y>0)
    25.         {
    26.             y=y/10;
    27.             dem2++; // dem xem b co bao nhieu chu so  + 5
    28.         }
    29.     int  demtmp=dem1-5;//demtmp la bien do dai cua chu so a
    30.  
    31.  
    32.  /* ---------------xuat ra theo y muon--------------------------------*/
    33.  
    34.     if(a>b)
    35.     {
    36.         xuat=dem1;
    37.         for(int i=1;i<=dem1;i++)
    38.             printf(" ");
    39.         printf("%ld\n",a);
    40.         for(int j=1;j<=(dem1+(dem1-dem2));j++)
    41.             printf(" ");
    42.         printf("%ld\n",b);
    43.         for(int m=1;m<=dem1;m++)
    44.             printf(" ");
    45.             for(int t=1;t<=dem1-5;t++)
    46.                 printf("-");
    47.                 printf("\n");
    48.  
    49.     }
    50.     else
    51.     {
    52.         xuat=dem2;
    53.         for(int i=1;i<=dem2+(dem2-dem1);i++)
    54.             printf(" ");
    55.         printf("%ld\n",a);
    56.         for(int j=1;j<=dem2;j++)
    57.             printf(" ");
    58.         printf("%ld\n",b);
    59.         for(int m=1;m<=dem2;m++)
    60.             printf(" ");
    61.             for(int t=1;t<=dem2-5;t++)
    62.                 printf("-");
    63.                 printf("\n");
    64.     }
    65.  
    66. /*----------------Thuat  Toan ------------------------------------*/
    67.  
    68.  
    69.     while(tmpb>0)
    70.     {
    71.  
    72.         demtmp=dem1-5;   //gan lai do dai sau mot lan nhan
    73.         x=a;            // khong muon thay doi gia tri a
    74.         k=1;            // he so nhan len tung hang don vi
    75.         s=0;            // ket qua cua tung con so nhan voi so a
    76.         while(x>0)
    77.         {
    78.     t=(tmpb%10)*(x%10)+nho;//tung so b nhan voi tung so a cong nho
    79.             nho=t/10;
    80.             in=t%10;
    81. if(((tmpb<10)||(a<10)||(tmpb%10<10))&&((tmpb*x+nho)>=10)&&(demtmp==1))
    82.     {
    83.         s+=t*k;//neu nhan voi chu so dau tien cua a > 10 thi in ra luon
    84.                 nho=0;
    85.     }
    86.     else
    87.         s+=in*k;      // s la de luu lai gia tri cua bien in
    88.             k=k*10;
    89.             x=x/10;            //sau khi nhan giam x
    90.             demtmp--;
    91.  
    92. }
    93.         for(i=xuat;i>0;i--)
    94.             printf(" ");
    95.     printf("%.0f\n",s);//xuat ra tung dong ket qua ung voi tung con so
    96.  
    97.         kq+=s*h;//Ket qua cua phep nhan duoc cong don voi bien s
    98.  
    99.     p++;   // bien p tang la de giam di so khoang trang in ra o phia duoi
    100.     h=h*10;// thut vao 1 don vi nen phai nhan len 10 khi cong vao kq
    101.         xuat-=1; //giam di mot khoang trang khi xuong mot hang
    102.         tmpb/=10; // lay so ke trai de nhan voi tung so a
    103.     }
    104.  
    105.  
    106. /*--------------------------Xuat Ket Qua Cuoi Cung----------------*/
    107.  
    108.     if(a<b)
    109.     {
    110.       if(b>=10)//tru truong hop da in ra s roi con in kq , no se in hai lan
    111.       {
    112.         for(int m=1;m<=dem2-p;m++)
    113.             printf(" ");
    114.         for(int u=1;u<=dem2-3;u++)
    115.                 printf("-");
    116.                 printf("\n");
    117.         for(int v=0;v<=dem2-p;v++)
    118.             printf(" ");
    119.     printf("%.0f",kq);//o tren da in ra bien s nen khong in kq neu b<10
    120.       }
    121.     }
    122.     else //tuong tu
    123.     {
    124.       if(b>=10) // xet de tranh in hai lan ket qua
    125.       {
    126.         for(int m=1;m<=dem1-p;m++)
    127.             printf(" ");
    128.         for(int u=1;u<=dem1-3;u++)
    129.                 printf("-");
    130.                 printf("\n");
    131.         for(int v=0;v<=dem1-p;v++)
    132.             printf(" ");
    133.             printf("%.0f",kq);
    134.       }
    135.     }
    136.  
    137.  
    138.  
    139.     getch();
    140.  
    141.  
    142. }
    HẾT

  3. #13
    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 13

    BÀI 13

    1. Ý TƯỞNG THUẬT TOÁN :
    Ở bài này ta tính tổng các số từ 1 cho tới n , ta cần có một vòng lặp chạy từ 1 cho đến n sau đó một biến cộng dồn khi vòng lặp chạy .
    2. Ý NGHĨA MỘT SỐ BIẾN TRONG BÀI :
    a. Trong bài chỉ có biến n là biến in put
    b. Biến s : là biến cộng dồn khi vòng for lặp lại

    3. BÀI GIẢI :
    C Code:
    1. #include<stdio.h>
    2. #include<conio.h>
    3. void main()
    4. {
    5.     clrscr();
    6.     unsigned long s=0;
    7.     int n,i;
    8.     printf("Nhap vao so n= ");
    9.     scanf("%lu",&n);
    10.     for(i=1;i<=n;i++)
    11.         s+=i;
    12.     printf("Tong Tu 1 --> n la %lu",s);
    13.     getch();
    14. }
    HẾT

  4. #14
    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 14

    BÀI 14

    1. Ý TƯỞNG THUẬT TOÁN :
    a. Tương tự như bài 13 . nhân dồn nhưng lưu ý đối với phép nhân thì có giới hạn .
    b. Bài này sẽ tôi sẽ trình bày theo hai cách :
    i. Cách 1 : tương tự như bài 13
    ii. Cách 2 : Ta cũng làm tương tự như cách trên nhưng khi biến nhân dồn lớn hơn 100000 thì ta cộng số mũ vào là 5 và lấy biến s chia cho 100000 , với thuật toán trên bạn có thể tính được 1000 giai thừa . ( lưu ý : biến s : kiểu dữ liệu là double )
    2. Ý NGHĨA MỘT SỐ BIẾN TRONG BÀI :
    a. Cách 1 : tương tự
    b. Cách 2 : có biến q : kiểu dữ liệu là int dùng để cộng số mũ khi s > 100000
    3. BÀI GIẢI :
    C Code:
    1. Cách 1 :
    2.  
    3. #include<stdio.h>
    4. #include<conio.h>
    5. void main()
    6. {
    7.     clrscr();
    8.     double s=1;
    9.     int n,i;
    10.     printf("Nhap vao so n= ");
    11.     scanf("%lu",&n);
    12.     for(i=1;i<=n;i++)
    13.         s*=i;
    14.     printf("Tong Tu 1 --> n la %.0f",s);
    15.     getch();
    16. }
    17. HẾT
    18.  
    19.  
    20.  
    21.  
    22.  
    23.  
    24.  
    25.  
    26.  
    27.  
    28. Cách 2 :
    29. #include<conio.h>
    30. #include<stdio.h>
    31. void main()
    32.     {
    33.        double     s=1;
    34.        int i,q=0,n;
    35.        clrscr();
    36.             printf("nhap n:");
    37.             scanf("%d",&n);
    38.                 for(i=1;i<=n;i++)
    39.                     {
    40.                         s*=i;
    41.                         if(s>=100000)
    42.                          {
    43.                             s/=100000;
    44.                             q=q+5;
    45.                           }
    46.                       }
    47.  
    48.             printf("Ket Qua cua %d giai thua %lf x 10^%d",n,s,q);
    49.        getch();
    50.     }
    HẾT

  5. #15
    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 16

    BÀI 16

    1. Ý TƯỞNG THUẬT TOÁN :
    Ở bài này ta dùng công thức phép lặp Newton
    X[ 0 ] = ( 1 + a ) /2
    X[1] = (1/2)*(X[n] + a/X[n]) ; n= 1 , 2 ,…
    Sai số cho phép là trị tuyệt đối của
    ( X[n+1] – X[n] ) / X[n] = 10 ^ -5
    2. Ý NGHĨA MỘT SỐ BIẾN TRONG BÀI :
    a. Trong bài có
    hàm double can_2(double x) : dùng để trả về giá trị căn bậc 2 của một số cần tính . ở đây được xem là biến x .
    Trong hàm còn có biến kq : được xem tương ứng như phần tử X[n+1] trong công thức trên
    biến temp : được xem như phần tử X[ n ] trong công thức trên .
    3. BÀI GIẢI :
    C Code:
    1. #include<stdio.h>
    2. #include<conio.h>
    3. #include<math.h>
    4.  
    5.  
    6. double can_2(double x)
    7. {
    8.     double kq,temp,z;
    9.     if(x==0)
    10.     return(kq=0);
    11.     kq=x;
    12.     if(x>0)
    13.     {
    14.       while(1)
    15.       {
    16.             temp=kq;             // tam thoi luu lai X[n]
    17.     kq=(kq*kq+x)/(2*kq);    // quy dong va rut gon tu phep lap Newton
    18.             z=fabs((kq-temp)/temp);// sai so cho phep
    19.             if(z<0.00001)
    20.     return(kq);
    21.       }
    22.     }
    23.  
    24. }
    25.  
    26. void main()
    27. {
    28.     clrscr();
    29.     double n;
    30.     printf("nhap so can tinh can bac hai:\n x= ");
    31.     scanf("%lf",&n);
    32.     printf("\n%lf co can bac hai: %lf",n,can_2(n));
    33.     printf("\n\nnhan phim bat ki de ket thuc...");
    34.     getch();
    35. }

    HẾT

  6. #16
    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 17

    BÀI 17

    1. Ý TƯỞNG THUẬT TOÁN :
    a. Ở bài này ta không phải xuất các phần tử ngược trở lại mà vấn đề là phải thay đổi được vị trí các phần tử với nhau theo đề bài là đảo ngược ( VD : phần tử đầu sẽ đảo thành phần tử cuối ) .
    b. Ta nên lưu ý chỉ cho một vòng lặp chạy từ 0 cho đến nửa số phần tử mà thôi sau đó hoán đổi vị trí của hai phần tử với nhau .
    2. Ý NGHĨA MỘT SỐ BIẾN TRONG BÀI :
    Trong bài có :
    a. Biến a[ 100] : là mảng để chứa các phần tử .
    b. Biến n : là biến input là số phần tử trong mảng .
    c. Hàm daomang(int a[100] , int n ) : nhiệm vụ hàm này là đảo vị trí của toàn mảng . trong hàm có biến tmp dùng để bắc cầu khi hai biến hoán đổi vị trí cho nhau .
    3. BÀI GIẢI :
    C Code:
    1. #include<stdio.h>
    2. #include<conio.h>
    3. void nhapmang(int a[100],int n)
    4. {
    5.     for(int i=0;i<n;i++)
    6.     {
    7.         printf("Nhap a[%d]",i);
    8.         scanf("%d",&a[i]);
    9.     }
    10. }
    11.  
    12.  
    13. void daomang(int a[100],int n)
    14. {
    15.     int tmp;
    16.     for(int i=0;i<n/2;i++)
    17.     {
    18.       if(a[i]!=a[n-i-1])
    19.       {
    20.         tmp=a[i];
    21.         a[i]=a[n-i-1];
    22.         a[n-i-1]=tmp;
    23.       }
    24.     }
    25. }
    26.  
    27.  
    28.  
    29.  
    30.  
    31. void xuatmang(int a[100],int n)
    32. {
    33.     for(int i=0;i<n;i++)
    34.         printf("%2d",a[i]);
    35. }
    36.  
    37. void main()
    38. {
    39.     clrscr();
    40.     int a[100],n;
    41.     printf("Nhap so pt cua mang");
    42.     scanf("%d",&n);
    43.     nhapmang(a,n);
    44.     daomang(a,n);
    45.     xuatmang(a,n);
    46.     getch();
    47. }
    HẾT

  7. #17
    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 18

    BÀI 18

    1. Ý TƯỞNG THUẬT TOÁN :
    a. Trước hết ta phải viết một hàm kiểm tra số nguyên tố sau đó viết hàm nhập mảng .
    b. Số nguyên tố là số chỉ chia hết cho 1 và chính nó .
    2. Ý NGHĨA MỘT SỐ BIẾN TRONG BÀI
    Trong bài gồm :
    i. a[100] : mảng tối đa 100 phần tử
    ii. n : số phần tử trong mảng
    iii. Hàm int ktnt(int a[100] , int n) là hàm kiểm tra và trả về giá trị 1 nêú là số nguyên tố và ngược lại trả về 0
    Trong hàm có biến dem : dùng để kiểm soát số lần chia hết cho I nếu là 1 lần thì là số nguyên tố ( vì I chạy từ 2).

    3. BÀI GIẢI :
    C Code:
    1. #include<stdio.h>
    2. #include<conio.h>
    3.  
    4. int ktnt(int x)
    5. {
    6.     int dem=0;
    7.     for(int i=2;i<=x;i++)
    8.     {
    9.         if(x%i==0)
    10.             dem++;
    11.     }
    12.     if(dem==1)
    13.         return 1;
    14.     else
    15.         return 0;
    16. }
    17.  
    18. void nhapmang(int a[100],int n)
    19. {
    20.     for(int i=0;i<n;i++)
    21.     {
    22.         do
    23.         {
    24.             printf("Nhap a[%d]",i);
    25.             scanf("%d",&a[i]);
    26.         }while(!ktnt(a[i]));
    27.     }
    28. }
    29.  
    30.  
    31. void xuatmang(int a[100],int n)
    32. {
    33.     for(int j=0;j<n;j++)
    34.         printf("%3d",a[j]);
    35. }
    36.  
    37. void main()
    38. {
    39.     clrscr();
    40.     int a[100],n;
    41.     printf("Nhap so phan tu cua mang");
    42.     scanf("%d",&n);
    43.     nhapmang(a,n);
    44.     xuatmang(a,n);
    45.     getch();
    46. }
    HẾT

  8. #18
    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 19

    BÀI 19

    1. Ý TƯỞNG THUẬT TOÁN :
    Ở bài này theo ý tưởng của tôi ta nên cho họ nhập vào tùy ý phần tử đầu tiên sau đó dựa trên phần tử đó kiểm soát và khống chế theo đề bài
    i. TH1 : Kiểm tra nếu pt đầu tiên là lẻ thì khi I chẳn phải là số chẳn và I lẻ phải là số lẻ .
    ii. TH2 : Kiểm tra nếu pt đầu tiên là chẵn thì khi I chẵn phải là số lẻ và I lẻ phải nhập số chẵn .
    2. Ý NGHĨA MỘT SỐ BIẾN TRONG BÀI :
    a[100] : là mảng phần tử tối đa là 100 kí tự
    n : số phần tử của mảng
    I : l biến chạy của một số hm for
    3. BÀI GIẢI :
    C Code:
    1. #include<stdio.h>
    2. #include<conio.h>
    3.  
    4. int kt_chan_le(int x)
    5. {
    6.     if(x%2==0)
    7.         return 1;
    8.     else
    9.         return 0;
    10. }
    11.  
    12. void nhapmang(int a[100],int n)
    13. {
    14.     printf("Nhap a[0]");    // Nhap va xet ngay so dau tien cua mang
    15.     scanf("%d",&a[0]);
    16.     if(kt_chan_le(a[0]))
    17.     {
    18.         for(int i=1;i<n;i++)
    19.         {
    20.             if(!kt_chan_le(i))
    21.             {
    22.                 do
    23.                 {
    24.                     printf("Nhap a[%d]",i);//Nhap tung phan tu le
    25.                     scanf("%d",&a[i]);
    26.                 }while(kt_chan_le(a[i]));  //chan nhap lai
    27.             }
    28.             else
    29.             {
    30.                 do
    31.                 {
    32.                 printf("Nhap a[%d]",i); //Nhap tung phan tu chan
    33.                     scanf("%d",&a[i]);
    34.                 }while(!kt_chan_le(a[i]));  //le nhap lai
    35.             }
    36.  
    37.         }
    38.     }
    39.     else
    40.     {
    41.         for(int i=1;i<n;i++)
    42.         {
    43.             if(kt_chan_le(i))
    44.             {
    45.                 do
    46.                 {
    47.                     printf("Nhap a[%d]",i);//Nhap tung phan tu le
    48.                     scanf("%d",&a[i]);
    49.                 }while(kt_chan_le(a[i]));  //chan nhap lai
    50.             }
    51.             else
    52.             {
    53.                 do
    54.                 {
    55.                 printf("Nhap a[%d]",i); //Nhap tung phan tu chan
    56.                     scanf("%d",&a[i]);
    57.                 }while(!kt_chan_le(a[i])); // le nhap lai
    58.             }
    59.  
    60.         }
    61.     }
    62.  
    63. }
    64.  
    65. void xuat(int a[100],int n)
    66. {
    67.     for(int i=0;i<n;i++)
    68.         printf("%3d",a[i]);
    69. }
    70.  
    71. void main()
    72. {
    73.     clrscr();
    74.     int a[100],n;
    75.     printf("Nhap so pt cua mang");
    76.     scanf("%d",&n);
    77.     nhapmang(a,n);
    78.     xuat(a,n);
    79.     getch();
    80. }
    HẾT

  9. #19
    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 20

    BÀI 20

    1. Ý TƯỞNG THUẬT TOÁN :
    a. Ở bài này ta chỉ cần xuẩt ra theo kiểu hình ma trận là được
    b. Ta chỉ nhập vào ma trận với n dòng và m cột sau đó cho xuẩt ra ứng với giá trị cột ta xuất tương ứng ra các giá trị dòng ( VD : ở ma trận 3 x 3 thì 00 , 01 , 11 …………,30 , 31 , 32 ) Ta sẽ xuất được ma trận chuyển vị của ma trận nhập vào .
    2. Ý NGHĨA MỘT SỐ BIẾN TRONG BÀI :
    a. Trong bài chỉ có mảng hai chiều a[ 50 ][50] chứa tối đa 50 dòng và 50 cột
    b. n : số dòng của ma trận
    c. m : số cột của ma trận
    3. BÀI GIẢI :
    C Code:
    1. #include<stdio.h>
    2. #include<conio.h>
    3. void nhapmang(int a[50][50],int n,int m)
    4. {
    5.     printf("Moi ban nhap mang vao day \n");
    6.     for(int i=0;i<n;i++)
    7.     {
    8.         for(int j=0;j<m;j++)
    9.         {
    10.             printf("a[%d][%d]",i,j);
    11.             scanf("%d",&a[i][j]);
    12.         }
    13.     }
    14. }
    15. void xuat_1(int a[50][50],int n,int m)
    16. {
    17.     printf("Ma tran vua nhap la\n");
    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. void xuat_2(int a[50][50],int n,int m)
    28. {
    29.     printf("Xuat chuyen vi ma tran \n");
    30.     for(int i=0;i<m;i++)
    31.     {
    32.         for(int j=0;j<n;j++)
    33.         {
    34.             printf("%3d",a[j][i]);
    35.         }
    36.         printf("\n");
    37.     }
    38.  
    39. }
    40. void main()
    41. {
    42.     clrscr();
    43.     int a[50][50],n,m;
    44.     printf("Nhap so hang n=:");
    45.     scanf("%d",&n);
    46.     printf("Nhap so hang m=:");
    47.     scanf("%d",&m);
    48. nhapmang(a,n,m);
    49.     xuat_1(a,n,m);
    50.     printf("\n");
    51.     xuat_2(a,n,m);
    52.     getch();
    53. }
    HẾT

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

    Những bài này không phải mình làm nên post lên nguyên vẹn để tôn trọng tác giả. Còn xét điều kiện a= 0 hay khác 0 trước hay sau thì tuỳ thuộc vào thói quen của mỗi người nó không ảnh hưởng đến tính đúng đắn của thuật toán. Tuy nhiên trường hợp a=0 có thể tạm coi là trường hợp "cực đoan" của bài toán, trong các đề thi những trường hợp như vậy rất hay được khai thác để kiểm tra, phân loại học sinh vì vậy có lẽ trước khi giải phần chính ta nên liệt kê đến các trường hợp suy biến như vậy giải quyết trước rồi tạo điều kiện đúng cho phần giải quyết chính. Hơn thế nữa, chắc khi làm toán bạn cũng thấy biện luận phương trình với a=0 rất dễ nhưng cũng chiếm số điểm khá lớn (khoảng 0,5 trong tổng 2 điểm), dễ ăn điểm vậy tại sao lại không giải quyết trước.

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