Get me outta here!
Showing posts with label LaptrinhC. Show all posts
Showing posts with label LaptrinhC. Show all posts

September 24, 2015

Tổng hợp các bài tập lập trình C (Phần 8)

1. Sao chép chuỗi trong C
#include <stdio.h>
#include <string.h>
#define MAXLENGTH 5
int main()
{
    char *name1 = "thanhtam";
    char *name2 = "thanhdung";
    printf("chuoi sao chep la %s",name1 = name2);
getch();
}

2. Sắp xếp
#include<stdio.h>
#include<conio.h>
#include<string.h>
main()
{
      char n[20];
      printf("nhap vao mot day so:");
      scanf("%s",&n);
      if(chuoi(n)==1) printf("chuoi la tang dan");
      else printf("chuoi la khong tang dan");
      getch();
      }
      int chuoi(char n[20])
      {
          int i;
          for(i=0;i<=n;i++)
      {
                       if(n[i] < n[i+1]) return 0;
                       else return 1;
                       }
                       }     

3. Switch trong C
#include<stdio.h>
int main()
{
    int i;
    printf("nhap vao so: ");
    scanf("%d",&i);
    switch(i)
    {
             case 1: printf("so mot");
             break;
             case 2:printf("so hai");
             break;
             case(3) :printf("so ba hoac bon");
             break;
             }
   getch();
}   

4. Tính thể tích
#include<stdio.h>
#define Pi 3.14
int main()
{
    int R = 10;
    float V ;
    V = 4.0/3.0*Pi*R*R*R;
    printf("the tich cua hinh cau la: %f",V);
    getch();
    }

Tổng hợp các bài tập lập trình C (Phần 7)

1. Tổng các số có 1 chữ số
#include<stdio.h>
#include<conio.h>
main()
{
       int n,tong = 0;
       printf("nhap vao mot so nguyen: ");
       scanf("%d",&n);
       int i=n%10;
       printf("tong cac chu so cua %d la:",n);
       while(i!=0)
       {
               i=n%10;
               tong=tong+i;
               n=n/10;}
       printf("%d",tong);
       getch();
       }

2. Chuỗi palidrom
#include<stdio.h>
#include<conio.h>
main()
{     char n[20];
      printf("nhap vao mot chuoi: ");
      scanf("%ch",&n);
      if(palidrom(n)==1) printf("chuoi la palidrom");
      else printf("chuoi khong phai la palidrom");
      getch();
      }
int palidrom(char n[20])
{
    int i;
    int l=strlen(n);  
    for(i=0;i<=l/2;i++)
    {
         if(n[i]!=n[l-i-1]) return 0;
         else return 1;
         }}    

3. Vay tiền ngân hàng
#include<stdio.h>
#include<conio.h>
main()
{
      int a,b,c;
      printf("thu nhap hang nam la: ");
      scanf("%d",&a);
      printf("tai san cua khach hang: ");
      scanf("%d",&b);
      printf("so no cua khach hang: ");
      scanf("%d",&c);
      if(((a>=18000000)||(b>=100000000))&&(c<=36000000))
      printf("cho vay");
      else
      printf("khong cho vay");
      getch();
      }

4. Giai thừa và tổng giai thừa
#include<conio.h>
#include<stdio.h>
float giai_thua(float n)
{
    if(n==0) return 1;
    else return(n*giai_thua(n-1));
}
float tong_giai_thua(float n)
{
      if(n<=0) return 1;
      else
      {
          if(n==1) return 1;
          else return 1/giai_thua(n) +tong_giai_thua(n-1);
      }
}
int main()
{
    float n;
    printf("\nNhap n:");
    scanf("%f",&n);
    printf("%.1f!=%.3f",n,giai_thua(n));
    printf("\nTong giai thua la:%.2f",tong_giai_thua(n));
    getch();
}

5. Mảng hai chiều
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<string.h>
#include<ctype.h>
#define max 100
void nhap(int a[], int n)
{
    for(int i=1; i<=n; i++)
    {
        printf("Nhap pt a[%d]: ",i);
        scanf("%d", &a[i]);
    }
}
void ghifile(int a[],int n)
{
    FILE *f;
    f=fopen("bcdonline.text","wt");
    fprintf(f,"%d",n);
    for(int i=1;i<=n;i++)
        fprintf(f,"%3d",a[i]);
    fclose(f);
}
int main()
{
    nhap();
    ghifile();
    getch();
}

Tổng hợp các bài tập lập trình C (Phần 6)

1. Số nguyên tố
#include<conio.h>
#include<stdio.h>
main()
{
      int i,n,dem=0;
      printf("nhap vao mot so nguyen: ");
      scanf("%d",&n);
      for( i=1;i<=n;i++)
      {
                       if(n%i==0)
                       dem=dem+1;}
        if(dem==2)
        printf("so %d la so nguyen to",n);
        else printf("so %d khong phai la so nguyen to",n);
        getch();
        }  

2. Kiểm tra 3 cạnh của tam giác
#include<stdio.h>
#include<conio.h>
main()
{
      int a,b,c;
      printf("nhap chieu dai 3 canh cua tam giac ABC : ");
      printf("\na = ");
      scanf("%d",&a);
      printf("b = ");
      scanf("%d",&b);
      printf("c = ");
      scanf("%d",&c);
      if((a+b<c)||(a+c<b)||(c+b<a))
      printf("khong phai la tam giac");
      else if(((a+b>c)&&(a+c>b)&&(b+c>a))&&(a==b==c))
      printf("tam giac deu");
      else if(((a+b>c)&&(a+c>b)&&(b+c>a))&&((a==b)||(a==c)||(c==b)))
      printf("tam giac can");
      else if ((a+b>c)&&(a+c>b)&&(b+c>a))
      printf("tam giac binh thuong");
      getch();
      }
3. Tạo ngẫu nhiên 2 mảng
#include<stdio.h>
#include<conio.h>
main()
{
      int i,l[10];
      for(i=0;i<30;i++)
      {
           l[i] =rand() % (30-8) + 8;
       printf("\t%d",l[i]);
       }
       getch();
       }   

4. Tìm phần tử lớn nhất, nhỏ nhất của mảng



#include<stdio.h>
#include<conio.h>
main()
{
      int a[20],n,i,max,min,vt1=0,vt2=0;
      printf("nhap vao so phan tu cua mang:");
      scanf("%d",&n);
      for(i=0;i<n;i++)
      {
            printf("a[%d]=",i);
            scanf("%d",&a[i]);
            }
       max=min=a[0];  
      for(i=0;i<n;i++)
      {
           if(max<a[i]){ max=a[i];vt2=i;}
           if(min>a[i]){ min=a[i];vt1=i;}
           }
      printf("phan tu lon nhat cua mang:%d",max);
      printf("\nphan tu nho nhat cua mang:%d",min);
      printf("\nkhoang cach giua 2 mang max va min la:%d",abs(vt2-vt1));
      getch();
      }  

Tổng hợp các bài tập lập trình C (Phần 5)

1. Giai thừa
#include<stdio.h>
#include<conio.h>
int giai_thua( int n)
{
    if(n==0) return 1;
    else return (n*giai_thua(n-1));
    }
main()
{
      int n;
      printf("nhap vao n: ");
      scanf("%d",&n);
      printf("%d",giai_thua(n));
      getch();
      }    
2. Kiểm tra mảng tăng dân
#include<stdio.h>
#include<conio.h>
main()
{
      float a[50];
      int i,j,n;
      printf("nhap vao so phan tu cua mang ");
      scanf("%d",&n);
      for(i=0;i<n;i++)
      {
             printf("a[%d] = ",i);
             scanf("%f",&a[i]);
             }
       int dem =0;  
       for(i=0;i<=n;i++)
       for(j=i+1;j<n;j++)
       if(a[i]<=a[j])  
              printf("mang da cho duoc sap xem tang dan");
              printf("mang khong duoc sap xem tang dan");            
       getch();
       }                
3. Kiểm trang mảng đối xứng
#include<stdio.h>
#include<conio.h>
main()
{
      int a[20],i,j,n;
      printf("nhap vao so phan tu cua mang: ");
      scanf("%d",&n);
      for(i=0;i<n;i++)
      {
             printf("a[%d]= ",i);
             scanf("%d",&a[i]);
             }
       int dem=0;
       for(i=0;i<n/2;i++)
       {
             if(a[i]==a[n-i-1])
             dem=dem+1;
             }
       if(dem==n/2) printf("mang la doi xung");
       else printf("mang khong doi xung");    
    getch();
    }                                
4. Số hoàn thiện
#include<stdio.h>
#include<conio.h>
main()
{
      int n,i;
      printf("nhap vao mot so: ");
      scanf("%d",n);
      int tong=1;
      for(i=2;i<n;i++)
      {
             if(n%i == 0)
             tong = tong+i;
      }
      if(tong == n )
      printf("so %d la so hoan thien",n);
      else printf("so %d la so khong hoan thien",n);
     //printf("(so hoan thien la so tu nhien co tong cac uoc so bang chinh no,ke ca 1)");
      getch();
      }                


Tổng hợp các bài tập lập trình C (Phần 4)

1. Bài tập về tạo file trong C
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<string.h>
#include<ctype.h>
#define max 100
typedef struct hocsinh{
char hoten[35];
char lop [7];
float diemtoan, diemtin ;
}HOCSINH;
HOCSINH danhsach[max];
int numrecords = 0 ;
char filename[]= "DANHDACH.dat";
//================================================== ======
int menu(){
char c;
system("cls");
printf("--------Menu------------");
printf("\n ---------------------");
printf("\n +1 Nhap ");
printf("\n +2 Liet ke ");
printf("\n +3 Ghi vao dia " );
printf("\n +4 Lay tu dia ");
printf("\n +5 Thoat\n");
do{
printf(" Chon: ");
c = getchar();
getchar();
}while(c < '1' || c > '5');
return (c - '0');
}
//================================================== ======
void nhapmoi ()
{
int done = 0 ;
char hoten[35];
float diem;
do {
printf("\n Ho ten (bo trong de thoat ) : ");
gets(hoten);
if(strlen(hoten)==0)
done = 1;
else
{
strcpy(danhsach[numrecords].hoten, hoten );
printf("\n Diem toan : ");
scanf("%f", &diem); getchar();
danhsach[numrecords].diemtoan = diem;
printf("\n Diem Tin  : ");
scanf("%f", &diem); getchar();
danhsach[numrecords].diemtin = diem ;
numrecords++;
}
} while (!done);
}
//================================================== =====
void lietke(){
int i;
if (numrecords != 0){
printf("\n "); for(i = 1; i <= 59; i++) printf("-");
printf("\n | %3s | %-35s | %4s | %4s |", "STT", "HO VA TEN", "Toan", "Tin");
printf("\n "); for(i = 1; i <= 59; i++) printf("-");
for (i = 0 ; i < numrecords; i++)
{
printf ("\n | %3d |", i+1);
printf (" %-35s | %4.1f | %4.1f | ", danhsach[i].hoten, danhsach[i].diemtoan , danhsach[i].diemtin );
}
printf("\n "); for( i = 1; i <= 59; i++) printf("-");
}
getch();
}
//========================================================
void getdata(){
char c;
int start , nrec;
FILE *fp;
long curpos, length ;
start = 0 ;
if (numrecords != 0){
printf("\n Dang co du lieu trong bo nho .Co muon noi them vao ko ? (C/K)");
c = toupper(getchar()); getchar();
if (c == 'C')
start = numrecords;
else if(c == 'K'){
numrecords = 0;
start = 0 ;
}else return;
}
if ((fp = fopen (filename , "r")) == NULL )
printf(" Khong the mo tap tin %s " , filename);
else{
curpos = ftell(fp);
fseek(fp, 0L, SEEK_END);
length = ftell(fp);
rewind(fp);
nrec = length / sizeof(HOCSINH);
fread(&danhsach[start], sizeof(HOCSINH), nrec, fp);
fclose(fp);
printf("\n %s %d records tu file. ", (numrecords == 0)? "Mo": "Them vao", nrec);
numrecords = numrecords + nrec;
getch();
}
}
//========================================================
void putdata (){
FILE *fp ;
if ((fp = fopen(filename , "w+")) == NULL )
printf("\n Khong thay ghi tap tin %s ", filename );
else{
fwrite(&danhsach[0], sizeof(HOCSINH), numrecords, fp);
fclose(fp);
printf("\n Ghi %d records vao file." , numrecords);
getch();
}
}
//================================================== ======
int main(){
int chon , done = 0 ;
do {
chon = menu ();
switch(chon)
{
case 1 : nhapmoi();
break;
case 2 : lietke();
break ;
case 3 : putdata ();
break ;
case 4 : getdata ();
break ;
//default : done = 1;
}
} while (!done );
}
2. Có 3 chữ số mà tổng bằng tích
#include<stdio.h>
#include<conio.h>
main()
{
    int n,tong=0,tich=1;
    printf("cac so co 3 chu so ma tong bang tich la: ");
    for(n=100;n<=999;n++)
    {    int i;
         while(i!=0)
      {  tong = tong+i;
         tich = tich*i;
         i=n%10;
          n=n/10; }
        if(tong == tich)
        printf("\n%d",&tong);
        }
   getch();
   }      
3. Dãy fibonacci
#include<stdio.h>
#include<conio.h>
int fibonacci(int n)
{
    if(n==0 || n==1) return 1;
    else
    return (fibonacci(n-2)+fibonacci(n-1));
    }
main()
{
      int n,i;
      printf("nhap vao gioi han day so muon tim: ");
      scanf("%d",&n);
      for(i=0;i<n;i++){
      printf("%2d",fibonacci(n));}
      getch();
      }    
4. Đổi giờ phút giây
#include<stdio.h>
#include<conio.h>
main()
{
      int a,gio,phut,giay;
      printf("nhap vao so giay : ");
      scanf("%d",&a);
      gio = (a/3600);
      phut = (a%3600)/60;
      giay = (a%3600)%60;
      printf("%d giay = %d gio %d phut %d giay",a,gio,phut,giay);
      getch();
   }

Tổng hợp các bài tập lập trình C (Phần 3)


1. Sửa lỗi viết hoa
#include<stdio.h>
#include<conio.h>
#include<string.h>
void sualoi(char s[])
{
     int i;
     int l = strlen(s);
     for(i=l;i>0;i--)
     {
                     if(s[i] != ' ') s[i+1] = s[i];
                     else s[i-1] = toupper(s[i]);
     }
}
int main()
{
    char s[100];
    int i;
    int l = strlen(s);
    printf("nhap vao mot chuoi: ");
    gets(s);
    printf("chuoi chua sua la: %s\n",s);
    printf("chuoi da sua la: ");
    sualoi(s);
    for(i=l;i>0;i--)
    printf("%s",s[i]);
    getch();
    return 1;
}


2. Tính tiền điện
#include<stdio.h>
#include<conio.h>
int main()
{
    int a[100],b[100];
    int gia;
    int i,n,hieu;
    printf("nhap vao so luong khach hang:");
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
           printf("nhap vao khach hang thu %d\n",i+1);
           printf("tien dien thang 9: ");
           scanf("%d",&a[i]);
           printf("tien dien thanh 10:");
           scanf("%d",&b[i]);
           while(a[i] > b[i])
           {
                      printf("ban da nhap so lieu sai, moi nhap lai: \n");
                      printf("tien dien thang 9: ");
                      scanf("%d",&a[i]);
                      printf("tien dien thanh 10:");
                      scanf("%d",&b[i]);
           }
           printf("\n");
    }
    printf("---------------//-----------------\n");
    for(i=0;i<n;i++)
    {
                    hieu = b[i]-a[i];
                    gia = hieu>350?(hieu-350)*1500+305000:hieu>250?(hieu-250)*1200+185000:hieu>150?
                    (hieu-150)*1000+85000:hieu>50?(hieu-50)*800+5000:hieu*500;
                    printf("so tien dien nguoi %d phai tra la: %d\tnghin dong\n",i+1,gia);
    }
    getch();
    return 1;
}
3. Thuật toán
#include<stdio.h>
#include<conio.h>
int main()
{
    int a,b,r,q,x,y;
    int x0 = 1;
    int x1 = 0;
    int y0 = 0;
    int y1 = 1;
    printf("nhap vao so a: ");
    scanf("%d",&a);
    printf("nhap vao so b: ");
    scanf("%d",&b);
    if(b==0)
    printf("UCLN la: %d",a);
    {
       while(b>0)
       {
       r = a/b;  
       q = a%b;
       x = x0-x1*q;
       y = y0-y1*q;
       if(r==0) break;
       a=b;
       b=r;
       x0=x1;
       x1=x;
       y0=y1;
       y1=y;  
    } return b;
    printf("UCLN la: %d",b);
    }
    getch();
    return 1;
}
4. Xếp loại điểm
#include<stdio.h>
#include<conio.h>
int main()
{
    int i,n;
    float a[100];
    printf("nhap vao so luong thi sinh: ");
    scanf("%d",&n);
    printf("moi nhap vao diem thi sinh \n");
    for(i=0;i<n;i++)
    {
          printf("%d  :",i+1);
          scanf("%f",&a[i]);
    }
    for(i=0;i<n;i++)
    {
          //xeploai = a[i]>9?gioi:a[i]>7?kha:a[i]>5?trungbinh:yeu;
          if(a[i]>=9)    printf("%0.2f\t\t\t\tgioi\n",a[i]);
          else if(a[i]>=7)  printf("%0.2f\t\t\t\tkha\n",a[i]);
          else if(a[i]>=5)  printf("%0.2f\t\t\t\ttrungbinh\n",a[i]);
          else  printf("%0.2f\t\t\t\tyeu\n",a[i]);
    }
    getch();
}


Tổng hợp các bài tập lập trình C (Phần 2)

1. Tính lãi xuất ngân hàng
#include<stdio.h>
#include<conio.h>
void nhaptien(int a[],int n)
{
     int i;
     for(i=0;i<n;i++)
     {
                     printf("thang %d:",i+1);
                     scanf("%d",&a[i]);
     }
}
int main()
{
    int a[100];
    int i,n;
    float lai = 0;
    printf("nhap vao so thang cua tien gui:");
    scanf("%d",&n);
    nhaptien(a,n);
    int tong = a[0];
    printf("\n");
    printf("%d \t\t\t\t %0.3f\n",a[0],tong+lai);
    for(i=1;i<n;i++)
    {
         lai = (tong+lai) * 0.08;
         tong = tong + a[i];
         printf("%d \t\t\t\t %0.3f\n",a[i],tong+lai);
    }
    getch();
    return 1;
}
2. Nhập dữ liệu bằng Struct
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
typedef struct {
       int sdt;
       char hoten[25];
       float sotien;
}thuebao[100];
void nhap(thuebao a,int n)
{
     int i;
     for(i=0;i<n;i++)
     {
          printf("sdt: ");
          scanf("%d",&a[i].sdt);
          printf("ho ten: ");
          scanf("%s",&a[i].hoten);
          printf("sotien: ");
          scanf("%f",&a[i].sotien);
     }
}
int main()
{
    int i,n;
    thuebao a;
    printf("nhap vao n thue bao: ");
    scanf("%d",&n);
    nhap(a,n);
    for(i=0;i<n;i++)
    printf("%d\t\t\t%s\t\t\t%0.3f\n",a[i].sdt,a[i].hoten,a[i].sotien);
    getch();
    return 1;
}
3. Sắp xếp danh sách thí sinh theo điểm thi
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
typedef struct {
        int sbd;
        char hoten[25];
        float m1,m2,m3;
        float tong;
        }danhsach[100];
void nhap(danhsach a,int n)
{
     int i;
     for(i=0;i<n;i++)
     {
           printf("sbd: ");
           scanf("%d",&a[i].sbd);
           printf("hoten: ");
           scanf("%s",&a[i].hoten);
           printf("diem m1: ");
           scanf("%f",&a[i].m1);
           printf("diem m2: ");
           scanf("%f",&a[i].m2);
           printf("diem m3: ");
           scanf("%f",&a[i].m3);
           printf("tong %0.3f\n",a[i].m1+a[i].m2+a[i].m3);
     }
}
void sapxep(danhsach a,int n)
{
     int i,j,tam;
     int tong[20];
     for(i=0;i<n;i++)
     {
                     tong[i] = a[i].m1+a[i].m2+a[i].m3;
                     printf("%d\n",tong[i]);
     }
     for(i=0;i<=n;i++)
       for(j=i+1;j<n;j++)
     {
        // tong[i] = a[i].m1+a[i].m2+a[i].m3;
         if(tong[i] < tong[j])
         {
                    tam = tong[i];
                    tong[i] = tong[j];
                    tong[j] = tam;
         }
     }
     for(i=0;i<n;i++)
     printf("%f\n",tong[i]);
}
int main()
{
    int i,n;
    danhsach a;
    printf("nhap vao danh sach thi sinh: ");
    scanf("%d",&n);
    nhap(a,n);
    sapxep(a,n);
    getch();
    return 1;
}
4. Sắp xếp mảng
#include<stdio.h>
#include<conio.h>
void nhap(int a[],int n)
{
     int i;
     for(i=0;i<n;i++)
     {
                     printf("a[%d] = ",i);
                     scanf("%d",&a[i]);
                     }
}
void sapxep(int a[],int n)
{
     int i,j,tam;
     for(i=0;i<=n;i++)
       for(j=i+1;j<n;j++)
     {
                if(a[i] > a[j])
               {
                         tam = a[i];
                         a[i] = a[j];
                         a[j] = tam;
               }
     }
}
int main()
{
    int i,n,a[20];
    printf("nhap vao so phan tu cua mang: ");
    scanf("%d",&n);
    nhap(a,n);
    for(i=0;i<n;i++)
    printf("%5d",a[i]);
    sapxep(a,n);
    printf("\n");
    for(i=0;i<n;i++)
    printf("%5d",a[i]);
    getch();
    return 1;
}


Tổng hợp các bài tập lập trình C (Phần 1)


1. Đổi chuỗi hoa thành thường
#include<stdio.h>
#include<conio.h>
#include<string.h>
int main()
{
    char s[100];
    int i,l;
    printf("nhap vao mot chuoi: ");
    gets(s);
    printf("chuoi thuong la: %s\n",s);
    l = strlen(s);
    for(i=0;i<l;i++)
    {
          s[i] = toupper(s[i]);
    }
    printf("chuoi hoa la: ");
    for(i=0;i<l;i++)
    printf("%c",s[i]);
    getch();
    return 1;
}
2. UCLN
#include <stdio.h>
#include <conio.h>
int main()
{
  int a,b,r;
  int n1,n2;
  printf("Nhap vao 2 so can tinh\n");
  printf("nhap n1:");
  scanf("%d",&n1);
  printf("nhap n2:");
  scanf("%d",&n2);
  if(n1>n2)
  {
   a=n1;
   b=n2;
  }
  else
  {
   a = n2;
   b = n1;
  }
  r = a%b; //tim so du cua a chia cho b
  while(r!=0) //chung nao so du khac 0 thi con vao vong lap
  //for(; r!=0 ; )
  {
     a=b;
     b=r;
     r = a%b;
  }
  printf("UCLN la %d",b);
  getch();
}
3. Đổi chuỗi thường thành hoa
#include<stdio.h>
#include<conio.h>
#include<string.h>
int main()
{
    printf("nhap vao thong diep: ");
    char c = toupper(getchar());
    printf("chuoi hoa la: ");
    while(c != '\n')
    {
        printf("%c",c);
        c = toupper(getchar());
    }
    getch();
    return 1;
}
4. Hàm tìm kiếm UCLN
#include<stdio.h>
#include<conio.h>
int UCLN(int a, int b){
     int r;
     if(b == 0)    return a;
     do{
          r = a%b;
          a = b;
          b = r;
       }while(r > 0);
     return b;
}
int main()
{
    int a,b,r;
    printf("nhap vao 2 so: ");
    scanf("%d %d",&a,&b);
    printf("UCLN la %d",UCLN(a,b));
    getch();
}