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: Truyen247.Pro