Chủ Nhật, 10 tháng 1, 2016

Một số đoạn code c tham khảo

Chia Sẻ - Bài tập lập trình C lớp AT10A - Phần 2: For... | Ksec Club

Chia Sẻ Bài tập lập trình C lớp AT10A - Phần 2: For...

 

  1. koolkiizz Moderator

    Bài tập lập trình C lớp AT10A - Phần 2: For...

    Bài 1. Tính giá trị giai thừa n! trong đó n nhập vào từ bàn phím. In kết quả ra màn hình.

    Code:
    #include "stdio.h"
    #include "conio.h"
    main()
    {
    int i,n,s;
    clrscr();
    printf("Nhap so n: ");
    scanf("%d",&n);
    if (n>0)
    {
        s=1;
        for (i=1;i<=n;i++)
            s = s*i;
        printf("ket qua %d!= %d",n,s);
    }
    else printf("Ban phai nhap so nguyen duong!");
    getch();
    return 0;
    }
    br/>

    Bài 2: Tính tổng: S = 1 + 1/2! + 1/3! +...+ 1/n! với giá trị của n nhập từ bàn phím.



    Code:
    #include "stdio.h"
    #include "conio.h"
    main()
    {
    int i,n,s;
    float s1;
    clrscr();
    printf("Nhap so n: ");
    scanf("%d",&n);
    if (n>0)
    {
        s=1;
        for (i=1;i<=n;i++)
        {
            s = s*i;
            s1 = s1 + (float)1/s;
        }
        printf("ket qua S = %f",s1);
    }
    else printf("Ban phai nhap so nguyen duong!");
    getch();
    return 0;
    }
    Bài 3: Nhập vào một dãy n số bất kì từ bàn phím. Tính giá trị lớn nhất và nhỏ nhất của dãy số đó. In kết quả ra màn hình cùng vị trí thứ tự của các giá trị max, min trong dãy số.

    Code:
    #include "stdio.h"
    #include "conio.h"
    main()
    {
    int i,n,vtmax,vtmin;
    float a[100],max,min;
    clrscr();
    printf("Nhap so phan tu cua day so: ");
    scanf("%d",&n);
    if (n>0)
    {
        for (i=0;i<n;i++)
        {
            printf("\nNhap phan tu thu a[%d]: ",i);
            scanf("%f",&a[i]);
        }
        max = a[0];
        min = a[0];
        for (i=0;i<n;i++)
        {
            if (max < a[i]) max = a[i];
            if (min > a[i]) min = a[i];
        }
        printf("\nSo lon nhat trong day la: %f, o vi tri ",max);
        for (i=0;i<n;i++)
            if (a[i] == max) printf("%4d",i);
        printf("\nSo nho nhat trong day la: %f, o vi tri ",min);
        for (i=0;i<n;i++)
            if (a[i] == min) printf("%4d",i);
    }
    else printf("Ban phai nhap so nguyen duong!");
    getch();
    return 0;
    }
    Bài 4: Nhập vào một dãy số bất kì từ bàn phím. Đếm tổng số các số dương và tổng số các số âm. Tính trung bình cộng của các số dương, trung bình cộng các số âm. Tính trung bình cộng của cả dãy số. In kết quả ra màn hình.

    Code:
    #include "stdio.h"
    #include "conio.h"
    main()
    {
        int i,n,am,duong;
        float a[100],sduong,sam,tbduong,tbam,tbday,sday;
        clrscr();
        printf("Nhap so phan tu cua day so: ");
        scanf("%d",&n);
    if (n>0)
    {
        for (i=0;i<n;i++)
        {
            printf("\nNhap phan tu thu %d: ",i+1);
            scanf("%f",&a[i]);
        }
        am=duong=sduong=sam=sday=0;
        for (i=0;i<n;i++)
        {
            if (a[i] > 0)
            {
                sduong=sduong+a[i];
                duong = duong + 1;
            }
            if (a[i] < 0)
            {
                sam=sam+a[i];
                am = am + 1;
            }
            sday = sday + a[i];
            //printf("\nPhan tu thu %d cua day la: %f",i+1,a[i]);
        }
        if (duong!=0)
        {
            tbduong = (float)sduong/duong;
            printf("\nTong cac so duong cua day la %.3f, trung binh cong la %.3f",sduong,tbduong);
        }
        else printf("\nDay khong co so duong!");
        if (am!=0)
        {
            tbam = (float)sam/am;
            printf("\nTong cua cac so am la %.3f, trung binh cong la %.3f",sam,tbam);
        }
        else printf("\nDay khong co so am!");
        tbday = (float)sday/n;
        printf("\nTrung binh cong cua day so la %.3f",tbday);
    }
    else printf("Ban phai nhap so nguyen duong!");
    getch();
    return 0;
    }
    Bài 5: Tìm giá trị lớn nhất và đếm các giá trị lớn nhất của nửa dưới đường chéo phụ của một ma trận cấp A[n,n]. In ma trận cùng kết quả tìm được ra màn hình.

    Code:
    #include "stdio.h"
    #include "conio.h"
    main()
    {
    int i,j, n,t;
    float a[100][100],max;
    clrscr();
    printf("Nhap so n: ");
    scanf("%d",&n);
    if (n>0)
    {
        for (i=0;i<n;i++)
            for (j=0;j<n;j++)
            {
                printf("Nhap gia tri a[%d][%d]: ",i,j);
                scanf("%f",&a[i][j]);
            }
        max = a[2][n-1];
        for (i=1;i<n;i++)
            for (j=n-i;j<n;j++)
                if (max < a[i][j]) max = a[i][j];
        t=0;
        for (i=1;i<n;i++)
            for (j=n-i;j<n;j++)
                if (a[i][j] == max) t=t+1;
        printf("\nMa tran A:"); printf("\n");
        for (i=0;i<n;i++)
            {
                for (j=0;j<n;j++)
                    printf("%6.2f",a[i][j]);
                printf("\n");
            }
        printf("\nGia tri lon nhat la %6.2f",max);
        printf("\nTim duoc %d vi tri.",t);
    }
    else printf("Ban phai nhap so nguyen duong!");
    getch();
    return 0;
    }
    Bài 6: Tính tích hai ma trận C[n,p] = A[n,m] x B[m,p]. In các ma trận ra màn hình.

    Code:
    #include "stdio.h"
    #include "conio.h"
    main()
    {
    int i,j,t,n1,n2,m1,m2;
    float a[100][100],b[100][100],c[100][100];
    clrscr();
    printf("\nNhap cap cua ma tran a: ");
    scanf("%d%d",&n1,&n2);
    printf("\nNhap cap cua ma tran b: ");
    scanf("%d%d",&m1,&m2);
    if (n2!=m1) printf("Hai ma tran khong nhan duoc!");
    else if (n1>0&&n2>0&&m2>0)
    {
        for (i=0;i<n1;i++)
            for (j=0;j<n2;j++)
            {
                printf("Nhap gia tri a[%d][%d]: ",i,j);
                scanf("%f",&a[i][j]);
            }
        for (i=0;i<n2;i++)
            for (j=0;j<m2;j++)
            {
                printf("Nhap gia tri b[%d][%d]: ",i,j);
                scanf("%f",&b[i][j]);
            }
        for (i=0;i<n1;i++)
            for (j=0;j<m2;j++)
                for (t=0;t<n2;t++)
                    c[i][j] = c[i][j] + (a[i][t])*(b[t][j]) ;
        printf("Ma tran a: \n");   
        for (i=0;i<n1;i++)
            {
                for (j=0;j<n2;j++)
                    printf("%6.2f",a[i][j]);
                printf("\n");
            }   
        printf("Ma tran b: \n");
        for (i=0;i<m1;i++)
            {
                for (j=0;j<m2;j++)
                    printf("%6.2f",b[i][j]);
                printf("\n");
            }   
        printf("Ma tran c: \n");
        for (i=0;i<n1;i++)
            {
                for (j=0;j<m2;j++)
                    printf("%6.2f",c[i][j]);
                printf("\n");
            }   
    }
    else printf("Ban phai nhap so nguyen duong!");
    getch();
    return 0;
    }
    Bài 7. Viết chương trình nhập vào số nguyên dương n. Sau đó in ra màn hình ma trận xoáy A[n,n] theo dạng:
    1 2 3
    8 9 4
    7 6 5 với n = 3​

    Code:
    #include "stdio.h"
    #include "conio.h"
    main()
    {
    int i,j,n,v,m, A[100][100];
    clrscr();
    printf("Nhap so chieu n cua ma tran vuong a: ");
    scanf("%d",&n);
    if (n%2==0) m=n/2;
    else { m=n/2+1; A[n/2][n/2]=n*n;}
    v=1;
    for (i=0;i<m;i++)
    {
        for (j=i;j<n-i-1;j++) { A[i][j] = v; ++v; }
        for (j=i;j<n-i-1;j++) { A[j][n-i-1] = v; ++v; }
        for (j=n-i-1;j>i;j--) { A[n-i-1][j] = v; ++v; }
        for (j=n-i-1;j>i;j--) { A[j][i] = v; ++v; }
        }
    for (i=0;i<n;i++)
    {
        for (j=0;j<n;j++) printf("%6d",A[i][j]);
        printf("\n");
        }
    getch();
    return 0;
    }
    Bài 8: Viết chương trình nhập vào hai dãy số nguyên theo chiều tăng dần. Sau đó trộn hai dãy này lại thành dãy thứ ba vẫn theo chiều tăng dần mà không cần sắp xếp lại. In ra màn hình ba dãy.

    Code:
    #include "stdio.h"
    #include "conio.h"
    main()
    {
    int i,j,t,n,m,p,a[100],b[100],c[100];
    clrscr();
    printf("\nSo phan tu cua day thu nhat: ");
    scanf("%d",&n);
    printf("\nSo phan tu cua day thu hai: ");
    scanf("%d",&m);
    if (n>0&&m>0)
    {
        for (i=0;i<n;i++)
        {
            printf("\nNhap phan tu thu %d cua day thu nhat: ",i+1);
            scanf("%d",&a[i]);
        }
        for (i=0;i<m;i++)
        {
            printf("\nNhap phan tu thu %d cua day thu hai: ",i+1);
            scanf("%d",&b[i]);
        }
        p = m + n;
        t=j=0;
        for (i=0;i<p;i++)
        {
            if (b[j] > a[t])
            {
                c[i] = a[t];
                ++t;
                if (t==n) { c[i+1] = b[j]; break; }
            }
            else
            {
                c[i] = b[j];
                ++j;
                if (j==m) { c[i+1] = a[t]; break; }
            }
        }
        printf("\nDay thu nhat: ");
        for (i=0;i<n;i++)
            printf("%4d",a[i]);
        printf("\nDay thu hai: ");
        for (i=0;i<m;i++)
            printf("%4d",b[i]);
        printf("\nDay thu ba: ");
        for (i=0;i<p;i++)
            printf("%4d",c[i]);
    }
    else printf("Ban phai nhap so nguyen duong!");
    getch();
    return 0;
    }

    Bài 9: [​IMG]

    Code:
    #include "stdio.h"
    #include "conio.h"
    #include "math.h"
    main()
    {
    int n,i;
    float a[100],x,p;
    clrscr();
    printf("\So mu cao nhat : ");
    scanf("%d",&n);
    if (n>0)
    {
        for (i=0;i<=n;i++)
        {
            printf("\nNhap so hang a%d : ",i);
            scanf("%f",&a[i]);
        }
        printf("\nNhap  x: ");
        scanf("%f",&x);
        p=0;
        for (i=0;i<=n;i++)
            p = p + a[i]*pow(x,i);
        for (i=n;i>=0;i--)
        {
            if ((a[i] != 0)&&(a[i]!=1)&&(a[i]!=-1)&&(i!=0)&&(i!=1))
                printf(" %.2fx%d ",a[i],i);
            else if ((a[i]==1)&&(i!=1)) printf("x%d",i);
            else if ((a[i]==1)&&(i==1)) printf("x",i);
            else if ((a[i]==-1)&&(i!=1)) printf(" - x%d",i);
            else if (a[i]==0) continue;
            else if (i==0) printf(" %.2f ",a[i]);
            else if (i==1) printf(" %.2fx ",a[i]);
            if ((a[i-1]>0)&&(i>0)) printf(" + ");
        }
        printf(" = %.2f voi x = %.2f",p,x);
    }
    getch();
    return 0;
    }
  2. Phong Tử

    Phong Tử Administrator Staff Member

    Bài viết:
    174
    "Thích" đã nhận:
    89
    Đến từ:
    Hoai Duc Phu, Ha Noi, Vietnam
    Có 1 kinh nghiệm nhỏ mà anh học được trong khi học lập trình là nên đặt tên biến sao cho dễ gợi nhớ nhất, để khi ta dùng, người khác dùng đều có thể hiểu được. Anh nghĩ em nên sử dụng nó.
  3. koolkiizz

    koolkiizz Moderator Staff Member

    Bài viết:
    124
    "Thích" đã nhận:
    37
    Em cũng nghĩ thế, nhưng em đặt tên biến thường là cho thật gọn, em quen rồi o_O
  4. Phong Tử

    Phong Tử Administrator Staff Member

    Bài viết:
    174
    "Thích" đã nhận:
    89
    Đến từ:
    Hoai Duc Phu, Ha Noi, Vietnam
    Đôi khi thói quen không tốt cũng nên sửa đúng không :) Việc này sẽ giúp em khá nhiều khi đi làm sau này
  5. koolkiizz

    koolkiizz Moderator Staff Member

    Bài viết:
    124
    "Thích" đã nhận:
    37
    em sẽ cố gắng sửa :D Thanks anh!
  6. Phạm Hùng

    Phạm Hùng

    Bài viết:
    7
    "Thích" đã nhận:
    0
    bài 2 sai rồi kìa thớt ơi :) bạn đã chạy thử chưa ? :D
    Last edited: 29/3/14
  7. koolkiizz

    koolkiizz Moderator Staff Member

    Bài viết:
    124
    "Thích" đã nhận:
    37
    Xin lỗi bạn nhưng mình đã chạy và kiểm tra lại rồi! Bạn có thể cho mình biết chỗ nào sai để mình sửa :D
  8. Phạm Hùng

    Phạm Hùng

    Bài viết:
    7
    "Thích" đã nhận:
    0
    copy - paste nguyên bài của b rồi đổi sang .C để chạy thử thì nhập số 2 vào nó cho ra tổng = 0 là sao ? :( mình cũng làm y hệt vậy ko biết sai ở đâu, lên xem giải ở đây cũng vậy @@ đáng ra nhập 2 vào tổng phải là 1,5 chứ :p:eek:
  9. Kevin Kien

    Kevin Kien Administrator Staff Member

    Bài viết:
    147
    "Thích" đã nhận:
    83
    Có thể là do 2 bạn sử dụng 2 ide khác nhau. Mình sử dụng code block và mình sử lại code bài 2 để chạy được trên codeblock như thế này:
    Code:
    #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    {
        int i,n,s;
        float s1;
    
        printf("Nhap so n: ");
        scanf("%d",&n);
        if (n>0)
        {
            s=1;
            for (i=1;i<=n;i++)
            {
                s = s*i;
                s1 = s1 + (float)1/s;
            }
            printf("ket qua S = %f",s1);
        }
        else printf("Ban phai nhap so nguyen duong!");
        return 0;
    }
    
    koolkiizz likes this.
  10. koolkiizz

    koolkiizz Moderator Staff Member

    Bài viết:
    124
    "Thích" đã nhận:
    37
    cho hỏi bạn dùng phần mềm gì để chạy code, mình dùng trên ubuntu, mình cũng đã thử trên windows trước đó, cụ thể là dùng turbo c++ 3.0, kết quả không sai.
    Phạm Hùng likes this.

Share This Page

0 nhận xét: