Bài tập C

Bài 1: Tìm USCLN,BSCNN

#include <stdio.h>

#include<conio.h>

unsigned USCLN (unsigned n, unsigned m)

{

  while (n != 0 && m != 0)

    if (n>m)

      n -= m;

    else

      m -= n;

  if (n == 0)

    return m;

  else

    return n;

}

unsigned BSCNN (unsigned n, unsigned m)

{

  return n * m / USCLN(n, m);

}

int main()

{

    char key;

     unsigned n, m;

    do

    {

  printf("Nhap hai vao so nguyen duong:

");

  printf("

So thu nhat a = ");

  scanf("%u", &n);

  printf("

So thu hai b = ");

  scanf("%u", &m);

  printf("

USCLN cua %u va %u = %u", n, m, USCLN(n,m));

  printf("

BSCNN cua %u va %u = %u", n, m, BSCNN(n,m));

  printf("

Nhan phim bat ky de tiep tuc. Nhan phim ESC de thoat chuong trinh....

");

  key = getch();

  }

   while(key!=27);

}

Bài 2: Đổi chữ Hoa thành thường và ngược lại

#include <stdio.h>

#include <string.h>

#include <ctype.h>

#include <conio.h>

void hoa(char *xau)

    {

        for(int i=0;i<strlen(xau);i++)

            xau[i]=toupper(xau[i]);

    }

void thuong(char *xau)

     {

        for(int i=0;i<strlen(xau);i++)

            xau[i]=tolower(xau[i]);                

     }

main(void)

    {

          char x[200];

          printf("Nhap vao 1 chuoi :");

          fflush(stdin);

          gets(x);

          hoa(x);

          printf("Chuoi viet hoa : %s",x);

          thuong(x);

          printf("

Chuoi viet thuong :%s",x);

          getch();         

    }

Bài 3: Đếm số lượng số nguyên tố trong 1 mảng

#include <stdio.h>

#include <conio.h>

#include <math.h>

#define max 2000

int main()

{

    int i, n, f= 1,a[max];

    printf("

nhap vao n :\t");

    scanf("%d",&n);

    for(i=0;i<n;i++)

        {

        printf("a[%d] :",i);

        scanf("%d",&a[i]);

        }

        {

          for(i=2;i<=sqrt(n);i++)

             if(n%a[i]==0)

                f = 0;

            if(f)

                   printf("so nguyen to la :%4d ",a[i]);

            else 

                printf("

khong co phan tu nao !");

    }

    getch();

    return 0;     

Bài 4: Đém số nguyên to trong 1 mảng, in ra màn hình

#include<stdio.h>

#include<stdlib.h>

#include<conio.h>

#include<math.h>

int ktSNT (int a)

{

    int i = 0;

    for(i = 2; i <= (int)sqrt(a); i++)

    {

        if( a % i == 0 || a < 2 && a != 2)

        {

            return 0;

        }

    }

    return 1;

}

int main ()

{

    int N, i, j, k = 0;

    int* snt = 0;

    int* a = NULL;

    printf("

Nhap vao N: ");

    scanf("%d", &N);

    snt = (int*)malloc(N*sizeof(int));

    a = (int*)malloc(N*sizeof(int));

    k = 0;

    for(i = 0; i < N; i++)

    {

        printf("

N[%d]: ", i);

        scanf("%d", &a[i]);

    }

    for(i = 0; i < N; i++)

    {

        if(ktSNT(a[i]) == 1)

        {

            snt[k] = a[i];

            k++;

        }

    }

    printf("

Co %d so nguyen to. Cac so do la:

",k);

    for (i = 0; i < k; i++)

    {

    printf("

N[%d]= %d

", i, snt[i]);

    }

    free(snt);

    free(a);

    getch();

    return 0;

}

Bài 5: Dãy âm dương

#include<stdio.h>

#include<conio.h>

#include<windows.h>

int nhap(int a[20],int n)

{

    int i;

    printf("

Nhap phan tu cho day: ");

    for(i=0;i<n;i++)

    {

        printf("

Nhap phan tu thu %d: ",i+1);

        scanf("%d",&a[i]);

        }

}

void xuat(int a[20], int n)

{

     int i;

     printf("

Mang ban vua nhap la: ");

     for(i=0;i<n;i++) printf("%5d",a[i]);

}

void tach(int a[20],int b[20], int c[20],int n)

{

     int i,x=0,y=0;

     for(i=0;i<n;i++)

     {

     if(a[i]<0) {b[x]=a[i];x++;}

     else {c[y]=a[i];y++;}

     }

     printf("

Mang sau khi xap xep la: ");

     printf("

Mang am la: ");

     for(i=0;i<x;i++) printf("%5d",b[i]);

     printf("

Mang duong la: ");

     for(i=0;i<y;i++) printf("%5d",c[i]);

}

int main()

{

      int n,a[20],b[2],c[20];

      printf("

Nhap so phan tu cho mang: "); scanf("%d",&n);

      nhap(a,n);

      xuat(a,n);

      tach(a,b,c,n);

      getch();

Bài 6: Đảo xâu

#include<stdio.h>

#include<conio.h>

#include<string.h>

int main()

{

    char key;

char s[255];

int i, j,c;

do{

printf("

Nhap xau ki tu gom cac chu so

");

fflush(stdin);

gets(s);

for (i = 0,j = strlen(s)-1;i < j; i++, j--)

{

            c = s[i];

            s[i] = s[j];

            s[j] = c;

}

puts("

Xau sau khi dao nguoc la ");

puts(s);

printf("Nhan phim bat ky de tiep tuc. Nhan phim ESC de thoat....");

 key = getch();

}

while (key !=27);

}

Bài 7: Đém kí tự và số trong 1 dãy

#include<stdio.h>

#include<conio.h>

#include<string.h>

#define SIZE 256

#define MAX 100

void demkitu(char *p)

{

    int len=strlen(p),i;

    int count[SIZE]={0};// khai bao mang dem, gan cho no ==0 het

    for(i=0;i<len;i++) count[p[i]]++; // thuc hien dem so lan xuat hien

    for(i=0;i<SIZE;i++) // tien hanh xuat

       if(count[i]) printf("ki tu '%c' xuat hien %d lan

",i,count[i]);

}

void demsonguyen(int *p,int n)

{

     int count[MAX]={0},i;

     for(i=0;i<n;i++) count[p[i]]++;

     for(i=0;i<MAX;i++) 

       if (count[i]) printf("so '%d' xuat hien %d lan

",i,count[i]);

}

int main ()

{

    char st[SIZE];

    int a[MAX],n;

    printf("nhap mag ki tu :");

    gets(st);

    demkitu(st);

    printf("-------------------------------------

");

    printf("nhap day so nguyen gom n so,%d",&n);

    for(int i=0;i<n;i++) 

    {

         printf("A[%d]=",i);

         scanf("%d",&a[i]);   

    }

    demsonguyen(a,n);

    getch();

Bài 8: Kiểm tra số đối xứng

#include <stdio.h>

#include <conio.h>

#include <math.h>

void NhapSoNguyenDuong(int &k)

{

    do

    {

        printf("Nhap mot so nguyen duong: ");

        scanf("%d", &k);

    } while (k <= 0);

}

int SoLuongKySo(int k)

{

    int dem = 0;

    while (k!=0)

    {

        k = k/10;

        dem++;

    }

    return dem;

}

bool LaSoDoiXung(int k)

{

    int soMuLuyThua = SoLuongKySo(k) - 1;

    int m = k;

    double x = 0;

    while (k != 0)

    {

        int donVi = k % 10;

        k = k/10;

        x = x + donVi * pow(10.0, soMuLuyThua);

        soMuLuyThua--;

    }

    if (x == m)

        return true;

    return false;

}

int main()

{

    int n;

    NhapSoNguyenDuong(n);

    if (LaSoDoiXung(n) == true)

        printf("%d la so doi xung

", n);

    else

        printf("%d khong la so doi xung

", n);

    getch();

}

Bài 9: Kiểm tra min max

#include<stdio.h>

#include<stdlib.h>

#include<conio.h>

int main()

{

float *a,x, smax, smin;

int i,n;

printf("

Nhap so phan tu cua day");

scanf("%d", &n);

printf("

Nhap day so nguyen duong");

a = (float *) malloc(n*sizeof(float));

if(a!=NULL) {

            for(i=0; i<n; i++)

            {

                        scanf("%f", &x);

                        a[i]=x;

            }

            for (smax=a[0], smin=a[0],i=1; i<n; i++)

            if (a[i]>smax)

                        smax=a[i];

            else  if (a[i]<smin)

                        smin=a[i];

            printf("So lon nhat la %0.f

", smax);

            printf("

Vi tri dat max la: ");

            for(i=0;i<n;i++)

                        if (smax==a[i])

                                    printf("%4d", i+1);

            printf("So nho nhat la %0.f

", smin);

            printf("Cac vi tri dat min la:");

            for(i=0;i<n;i++)

                        if (smin==a[i])

                                    printf("%4d", i+1);

    free(a);

  }

  else {

    printf("

Khong du bo nho.

");

   }

getch();

}

Bài 10: Kiểm tra dãy tăng, và sắp xếp

#include<conio.h>

#include<stdio.h>

#include<math.h>

#include<stdlib.h>

int main()

{

    char key;

float *a, tmp;

int dt=0, n, i, j;

do{

printf("

Nhap so phan tu cua day: ");

scanf("%d", &n);

a = (float *) malloc(n*sizeof(float));

if(a!=NULL) {

    for(i=0 ; i<n ; i++) {

      printf("

a[%d]=", i+1);

              scanf("%f", &a[i]);

    }

    for(i=1 ; i<n ; i++) {

      if (a[i]>a[i-1])

                          dt++;

    }

            if (dt==n-2)

                        printf("

Day la day tang");

            else

            {

                        printf("

Day sau khi sap xep: ");

                        for(i=0; i<n-1;i++)

                                    for (j=i+1; j<n; j++)

                                                if (a[j]<a[i])

                                                {

                                                            tmp=a[i];

                                                            a[i]=a[j];

                                                            a[j]=tmp;

                                                }

                        for (i=0; i<n; i++)

                                    printf("%8.3f", a[i]);

            }

    free(a);

  }

  else {

    printf("

Khong du bo nho.

");

   }

   printf("Nhan phim bat ky de tiep tuc! Nhan phim ESC de thoat...");

key=getch();

}

while(key!=27);

}

Bài 11: Kiểm tra dãy giảm và sắp xếp

#include<conio.h>

#include<stdio.h>

#include<stdlib.h>

int main()

{

    char key;

float *a, tmp;

int dg=0, n, i, j;

do{

printf("

Nhap so phan tu cua day: ");

scanf("%d", &n);

a = (float *) malloc(n*sizeof(float));

if(a!=NULL) {

    for(i=0 ; i<n ; i++) {

      printf("

a[%d]=", i+1);

              scanf("%f", &a[i]);

    }

    for(i=1 ; i<n ; i++) {

      if (a[i]<a[i-1])

                          dg++;

    }

            if (dg= =n-2)

                        printf("

Day la day giam");

            else

            {

                        printf("

Day sau khi sap xep: ");

                        for(i=0; i<n-1;i++)

                                    for (j=i+1; j<n; j++)

                                                if (a[j] > a[i])

                                                {

                                                            tmp=a[i];

                                                            a[i]=a[j];

                                                            a[j]=tmp;

                                                }

                        for (i=0; i<n; i++)

                                    printf("%8.3f", a[i]);

            }

    free(a);

  }

  else {

    printf("

Khong du bo nho.

");

   }

   printf("Nhan phim bat ky de tiep tuc! Nhan phim ESC de thoat...");

key = getch();

}

while(key!=27);

}

Bài 12: Kiểm tra số đã cho có là số chính phương không?

#include<stdio.h>

#include<conio.h>

#include<math.h>

int main()

{

    int n;

    double m;

        printf("Nhap so n: ");

        scanf("%d",&n);

        m=sqrt(n);

        if (m*m == n)

        printf("%d la so chinh phuong", n);

        else

        printf("%d khong phai la so chinh phuong",n);

        getch();

}

Bạn đang đọc truyện trên: AzTruyen.Top

Tags: