1. KHOA CNTT KIỀU TUẤN DŨNG 0903400513
TỔNG HỢP CÁC BÀI TẬP C-C++ CƠ BẢN
Các hàm nhập xuất trong các ví dụ dưới sử dụng hai hàm nhập xuất printf()
và scanf() trong C chuẩn. Trong C++, các bạn có thể hiểu nó thay thế cho hai
hàm cout và cin.
PHẦN 1
1. MÃ HÓA THÔNG ĐIỆP
2. GIẢI PHƯƠNG TRÌNH BẬC NHẤT
3. TÍNH CĂN BẬC HAI THEO PHƯƠNG PHÁP LẶP NEWTON
4. CẤU TRÚC VÀ CÁC HÀM THAO TÁC TRÊN SỐ PHỨC
5. DÃY TĂNG DẦN
6. DÃY TĂNG CÓ TỔNG DÀI NHẤT
7. QUẢN LÝ SINH VIÊN
8. GIẢI PHƯƠNG TRÌNH BẬC HAI
9. MA PHƯƠNG
10.FILE VÀ HỆ THỐNG
PHẦN 2
1. Sắp xếp mảng
2. Một ví dụ về Đa hình
3. Tiếp một ví dụ về Đa hình
4. Tổng hai ma trận
5. Một ví dụ về sử dụng template và quá tải toán tử Nhập xuất
6. Ví dụ về quá tải toán tử
7. Đếm số lần xuất hiện của các ký tự trong chuỗi
8. Bài toán Ancarokhi
9. Chứng minh đẳng thức An Casi
2. KHOA CNTT KIỀU TUẤN DŨNG 0903400513
10.Hiện bảng mã ASCII
11.In ra năm âm lịch tương ứng với năm nhập vào.
12.In ra bảng cửu chương
13.Nhập chuỗi và in chuỗi
14.Giải hệ phương trình bậc nhất.
15.Tính thứ của ngày
PHẦN 3
1. Chuyển số La Mã sang số Ả rập
2. Chuyển năm sang số La Mã
3. Thuật toán sắp xếp bẳng Radix sort
4. Danh sách liên kết đơn (Thuật toán vừa chèn vừa sắp xếp)
5. Quá tải toàn tử nhập xuất và sử dụng template
6. Chương trình đếm số ký tự trong một chuỗi ASCII
7. Biểu diễn số dưới dạng bit
8. Đảo chuỗi
9. Chương trình xem tập tin
10.Giải bài toán trâu ăn cỏ
11.Loại bỏ khoảng trống thừa trong chuỗi
12.Tìm tất cả các ước của một số N
13.Bội số chung và ước số chung
14.Trộn 2 dãy giảm thành một dãy tăng
15.Tính tích 2 ma trận:
16.In danh sách các số hoàn hảo nhỏ hơn số N nhập từ user
PHẦN 4
3. KHOA CNTT KIỀU TUẤN DŨNG 0903400513
1. Bài in ra lịch của một năm bất kỳ lớn hơn 1700
2. Bài tập kiểm tra dấu ngoặc đúng.
3. Bài toán Tám Hoàng Hậu
4. In ra số Hex tương ứng với một số nguyên dương
5. Liệt kê các hoán vị của N phần tử
6. In chuỗi theo các từ mỗi từ một dòng
7. In ra chữ số hàng trăm hàng chục hàng đơn vị
8. Tìm phần tử lớn nhất nhỏ nhất trong mảng một chiều
9. Tính tổ hợp chập K của N phần tử
10.Chương trình đọc số có 1,2 hoặc 3 chữ số.
11.Tính số ngày trong một tháng trong một năm bất kỳ
12.Bài kiểm tra số nguyên tố
13.Tìm max min của 4 số
14.Tìm n số Fibonaci đầu tiên
Trang 5
1. Tìm số tiền nhận trong n tháng khi biết lãi xuất
2. In ra dãy số ngược so với dãy số nhập vào
3. Trò chơi 8 hòn bi
4. Kiểm tra số đối xứng
5. Điền giá trị cho một mảng vuông theo chiều kim đồng hồ
6. In hình tam giác
7. Trộn hai mảng tăng dần thành một mảng tăng dần
8. Tìm vị trí đầu và vị trí cuối của một số trong một dãy số
9. Tính x^1/1! + x^2/2! + x^3/3! + ... + x^n/n!
4. KHOA CNTT KIỀU TUẤN DŨNG 0903400513
10.Trình bày các bước chuyển n đĩa từ cọc A sang cọc C trong bài toán Tháp
Hà Nội dùng 3 đĩa
11.Trình bày các bước chuyển n đĩa từ cọc A sang cọc C trong bài toán Tháp
Hà Nội dùng 4 đĩa
CODE
MÃ HÓA THÔNG ĐIỆP
#include <stdio.h>
#include <ctype.h>
#include <alloc.h>
char *crypt(char *tdiep, int column)
{
char tam[255], *result;
int i = 0, k = 0, n, j=0;
while(tdiep[i] != 0)
{
if (isalnum(tdiep[i]))
tam[k++] = tdiep[i];
i++;
}
tam[k] = 0;
result = (char *)malloc(k+1);
for (i=0; i<column; i++)
{
n = 0;
while(n+i < k)
{
result[j++] = tolower(tam[n+i]);
n += column;
}
}
result[k] = 0;
return result;
}
void main()
{
char thongdiep[255], *mahoa;
int col;
printf("nNhap thong diep can ma hoa : ");
5. KHOA CNTT KIỀU TUẤN DŨNG 0903400513
gets(thongdiep);
printf("nCho biet so cot : ");
scanf("%d", &col);
mahoa = crypt(thongdiep, col);
printf("nThong diep da duoc ma hoa thanh : %s", mahoa);
getch();
}
GIẢI PHƯƠNG TRÌNH BẬC NHẤT
#include <stdio.h>
void main()
{
float a, b;
printf("nGiai phuong trinh bac nhat AX + B = 0");
printf("nCho biet ba he so A B : ");
scanf("%f%f", &a, &b);
if (a==0)
if (b!=0)
printf("Phuong trinh vo nghiem");
else
printf("Phuong trinh co nghiem khong xac dinh");
else
printf("Dap so cua phuong trinh tren = %f", -b/a);
getch();
}
TÍNH CĂN BẬC 2 THEO PHƯƠNG PHÁP LẶP NEWTON
#include <stdio.h>
#include <math.h>
void main()
{
double a, xn, ketqua;
printf("nNhap vao so muon tinh can bac hai : ");
scanf("%lf", &a);
13. KHOA CNTT KIỀU TUẤN DŨNG 0903400513
}
} while (traloi != '0');
}
GIẢI PHƯƠNG TRÌNH BẬC 2
#include <stdio.h>
#include <math.h>
void main()
{
float a, b, c, delta;
printf("nGiai phuong trinh bac hai AXý + BX + C = 0");
printf("nCho biet ba he so A B C : ");
scanf("%f%f%f", &a, &b, &c);
delta = b * b - 4 * a * c;
if (delta<0)
printf("Phuong trinh vo nghiem");
else if (delta == 0)
printf("Phuong trinh co nghiem kep x1 = x2 = %f", -b/(2*a));
else
{
printf("Phuong trinh co hai nghiem phan bietnx1 = %f", (-b +
sqrt(delta))/(2*a));
printf("nx2 = %f", (-b - sqrt(delta))/(2*a));
}
getch();
}
MA PHƯƠNG
#include <stdio.h>
#include <conio.h>
// func declaration
void matrix( int n );
// main()
int main(void)
{
14. KHOA CNTT KIỀU TUẤN DŨNG 0903400513
int n;
// input until it's valid.
do
{
printf("n Plz input size of matrix [ odd size & n < 20 ]: n
= ");
scanf("%d",&n);
if ( n % 2 == 0 ) printf("n Invalid input value .. Plz re-
input ... n");
}
while ( n % 2 == 0 );
if ( n > 20 ) { n = 19 ; // in case of n is greater than 20
printf("n %d is greater than 20 & set to be default as
19 .",n ); } // end if
// call matrix()
matrix(n);
// stop to watch
getch();
return 0;
}
// function matrix(int n)
void matrix( int n )
{
int a[20][20];
int i, j, row, col, count = 1;
int old_row, old_col, sum = 0;
// set starting value of array
for ( i = 0 ; i < n ; i++ )
for ( j = 0 ; j < n ; j++ )
a[i][j] = 0;
// set the 1st value to start
row = 0; col = (n-1) / 2;
while ( count < n*n + 1 )
{
a[row][col] = count++ ; // set value for elements
old_row = row ; old_col = col; // save the last
addresses
// define whether going out of array
row -= 1; if ( row == -1 ) row = n - 1;
col += 1; if ( col == n ) col = 0;
15. KHOA CNTT KIỀU TUẤN DŨNG 0903400513
// in case of already having number
if ( a[row][col] != 0 )
{
row = old_row + 1;
col = old_col;
} // end if
} // end while
// print result
printf("n");
for ( i = 0 ; i < n ; i++ )
{
for ( j = 0 ; j < n ; j++ )
printf("%4d",a[i][j]);
printf("n");
} // end for
// calculate sum
for ( j = 0 ; j < n ; j++ )
sum += a[0][j];
printf("n Sum of each row - column - diagonal line is : %d
" , sum);
return;
}
XÓA 1 FILE DÙNG REMOVE
#include <stdio.h>
int main()
{
remove("d:/urls1.dat");
return 0;
}
XÓA 1 FILE DÙNG UNLINK
#include <stdio.h>
int main()
16. KHOA CNTT KIỀU TUẤN DŨNG 0903400513
{
remove("C:/pete.txt");
return 0;
}
CHO BIẾT THÔNG TIN FAT
#include <stdio.h>
#include <dos.h>
void main(void)
{
struct fatinfo fat;
getfatd(&fat);
printf("Sectors per cluster %dn", fat.fi_sclus);
printf("Clusters per disk %un", fat.fi_nclus);
printf("Bytes per cluster %dn", fat.fi_bysec);
printf("Disk type %xn", fat.fi_fatid & 0xFF);
}
ĐẾM TẦN SUẤT 1 KÍ TỰ TRONG FILE
# include <stdio.h>
# include <string.h>
main()
{
FILE *fp;
char in[100];
long int freq[257];
int i;
printf("nFile frequency table generatornn");
printf("nInput file:");
scanf("%s",in);
fp=fopen(in,"rb");
if(fp==NULL)
{
18. KHOA CNTT KIỀU TUẤN DŨNG 0903400513
void main(void)
{
FILE *fp;
char ch;
fp = fopen("websites.txt","r");
ch = getc(fp);
while(ch!=EOF)
{
putchar(ch);
ch = getc(fp);
}
printf("nn");
}
CHỌN Ổ ĐĨA TRONG DOS
#include <stdio.h>
#include <dir.h>
void main(void)
{
int drives;
drives = setdisk(3);
printf("The number of available drives is %dn", drives);
}
CHỌN Ổ ĐĨA TRONG WINS
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
void main(void)
{
char szBuffer[MAX_PATH+100];
UINT nDrive, AvailDrive = 0;
int dwLogicalDrives = GetLogicalDrives();
DWORD Success;
19. KHOA CNTT KIỀU TUẤN DŨNG 0903400513
printf("Number of logical drives: %dn", dwLogicalDrives);
for (nDrive = 0; nDrive < 32; nDrive++)
{
if (dwLogicalDrives & (1 << nDrive))
{ // Is drive available?
AvailDrive++;
// Get disk information.
wsprintf(szBuffer, "%c:", nDrive+'A', '0');
// Print out information.
if(SetCurrentDirectory(szBuffer))
printf("%s Is Now Currentn", szBuffer);
else
printf("Could not set %s as the current driven",
szBuffer);
}
}
printf("Number of drives available: %dn", AvailDrive);
}
CHO BIẾT KÍCH THƯỚC 1 FILE
#include <stdio.h>
#include <io.h>
#include <fcntl.h>
#include <sysstat.h>
int main()
{
int fp;
long file_size;
if ((fp = open("f:/cprojects/urls.txt", O_RDONLY)) == -1)
printf("Error opening the file n");
else
{
file_size = filelength(file_handle);
printf("The file size in bytes is %ldn", file_size);
close(fp);
}
return 0;
}
20. KHOA CNTT KIỀU TUẤN DŨNG 0903400513
SẮP XẾP MẢNG
#include<alloc.h>
#include<stdio.h>
#include<conio.h>
//=======================================
void taolap(int *A,int n)
{
int i;
printf("n Tao lap day so:n");
for(i=0;i<n;i++)
{
printf("n A[%d]=",i);
scanf("%d",&A[i]);
}
}
void dayso(int *A,int n)
{
int i;
for(i=0;i<n;i++)
printf("%5d",A[i]);
}
void select(int *A,int n)
{
int i,j,temp;
for(i=0;i<n-1;i++)
{
for(j=i+1;j<n;j++)
{
if(A[i]>A[j])
{
temp=A[i];
A[i]=A[j];
A[j]=temp;
}
}
}
printf("n Ket qua thu duoc la:");
dayso(A,n);
}
void luachon()
{
clrscr();
int *A,n;
printf("n t SAP XEP KIEU LUA CHONn");
printf("n Nhap so phan tu n=");
scanf("%d",&n);
A=(int*)malloc(n*sizeof(int));
taolap(A,n);
21. KHOA CNTT KIỀU TUẤN DŨNG 0903400513
select(A,n);
free(A);
getch();
}
//=======================================
void in2(int *A,int n)
{
int i;
for(i=0;i<n;i++)
printf("%5d",A[i]);
}
void tructiep()
{
clrscr();
int *A,i,j,n,temp;
printf("n SAP XEP KIEU TRUC TIEPn");
printf("nt SAP XEP KIEU TRUC TIEPn");
printf("n Nhap so phan tu n=");
scanf("%d",&n);
A=(int*)malloc(n*sizeof(int));
printf("n Tao lap day so:n");
for(i=0;i<n;i++)
{
printf("n A[%d]=",i);
scanf("%d",&A[i]);
}
for(i=1;i<n;i++)
{
temp=A[i];
for(j=i-1;j>=0&&temp<A[j];j--)
A[j+1]=A[j];
A[j+1]=temp;
printf("nnKet qua lan thu %d:",i);
in2(A,i+1);
}
free(A);
getch();
}
//=======================================
void tlap(int *A,int n)
{
int i;
printf("n");
printf("n Tao lap day so:n");
for(i=0;i<n;i++)
{
printf("n A[%d]=",i);
scanf("%d",&A[i]);
}
}
void in1(int *A,int n)
{
int i;
22. KHOA CNTT KIỀU TUẤN DŨNG 0903400513
for(i=0;i<n;i++)
printf("%5d",A[i]);
}
void bubble(int *A,int n)
{
int i,j,temp;
for(i=1;i<n;i++)
{
for(j=n-1;j>=i;j--)
{
if(A[j-1]>A[j])
{
temp=A[j-1];
A[j-1]=A[j];
A[j]=temp;
}
}
printf("nn Ket qua lan %d:",i);
in1(A,n);
}
}
void suibot()
{
clrscr();
int *A,n;
printf("n SAP XEP KIEU SUI BOTn");
printf("n Nhap so phan tu n=");
scanf("%d",&n);
A=(int*)malloc(n*sizeof(int));
tlap(A,n);
bubble(A,n) ;
free(A);
getch();
}
//=======================================
void qs(int *A,int left,int right)
{
int i,j,x,y;
i=left;
j=right;
x=A[(left+right)/2];
do
{
while(A[i]<x&&i<right)i++;
while(A[j]>x&&j>left)j--;
if(i<=j)
{
y=A[i];
A[i]=A[j];
A[j]=y;
i++;
j--;
}
}while(i<=j);
23. KHOA CNTT KIỀU TUẤN DŨNG 0903400513
if(left<j)qs(A,left,j);
if(i<right)qs(A,i,right);
}
void quick(int *A,int n)
{
qs(A,0,n-1);
}
void in3(int *A,int n)
{
int i;
for(i=0;i<n;i++)
printf("%5d ",A[i]);
}
void nhanh()
{
clrscr();
int *A,n;
printf("n SAP XAP NHANHn");
printf("n So phan tu n=");
scanf("%d",&n);
A=(int*)malloc(n*sizeof(int));
printf("nn Tao lap day so:n");
for(int i=0;i<n;i++)
{
printf("n A[%d]=",i);
scanf("%d",&A[i]);
}
quick(A,n);
printf("nn");
printf("Ket qua thu duoc la:nn");
in3(A,n);
getch();
free(A);
}
//=======================================
void in4(int *A,int n)
{
for(int i=0;i<n;i++)
printf("%5d",A[i]);
}
void merge(int *A,int n)
{
int i,k,j,low1,up1,low2,up2,size;
int *ds;
size=1;
ds=(int*)malloc(n*sizeof(int));
while(size<n)
{
low1=0;
k=0 ;
while(low1+size<n)
{
low2=low1+size;
up1=low2-1;
24. KHOA CNTT KIỀU TUẤN DŨNG 0903400513
if(low2+size-1<n)
up2=low2+size-1;
else
up2=n-1;
for(i=low1,j=low2;i<=up1 && j<=up2;k++)
{
if(A[i]<=A[j])
ds[k]=A[i++];
else
ds[k]=A[j++];
}
for(;i<up1;k++)
ds[k]=A[i++];
for(;j<up2;k++)
ds[k]=A[j++];
low1=up2+1;
}
for(i=low1;k<n;i++)
ds[k++]=A[i];
for(i=0;i<n;i++)
A[i]=ds[i];
size*=2;
}
printf("n n Ket qua thu duoc la:nn");
in4(A,n);
free(ds);
}
void hoanhap()
{
clrscr();
int *A,n,i;
printf("n t SAP XEP KIEU HOA NHAPn");
printf("n So phan tu n=");
scanf("%d",&n);
A=(int*)malloc(n*sizeof(int));
printf("n Tao lap day so:n");
for(i=0;i<n;i++)
{
printf("nA[%2d]=",i);
scanf("%d",&A[i]);
}
merge(A,n);
printf("n");
getch();
free(A);
}
//=======================================
void in5(int *A,int n)
{
for(int i=0;i<n;i++)
printf("%5d",A[i]);
}
void shaker(int *A,int n)
{
25. KHOA CNTT KIỀU TUẤN DŨNG 0903400513
int i,j,temp,tdoi;
do
{
tdoi=0;
for(i=n-1;i>0;i--)
{
if(A[i-1]>A[i])
{
temp=A[i-1];
A[i-1]=A[i];
A[i]=temp;
tdoi=1;
}
}
for(j=1;j<n;j++)
{
if(A[j-1]>A[j])
{
temp=A[j-1];
A[j-1]=A[j];
A[j]=temp;
tdoi=1;
}
}
}while(tdoi);
printf("nn Ket qua la :",tdoi);
in5(A,n);
}
void shaker()
{
clrscr();
int *A,n,i;
printf("n tSHAKER_SORTn");
printf("n So phan tu n=");
scanf("%d",&n);
A=(int*)malloc(n*sizeof(int));
printf("n n Tao lap day so:n");
for(i=0;i<n;i++)
{
printf("n A[%2d]=",i);
scanf("%d",&A[i]);
}
shaker(A,n);
getch();
free(A);
}
//=======================================
void main()
{
while(1) {
clrscr();
int key;
26. KHOA CNTT KIỀU TUẤN DŨNG 0903400513
printf("ntSAP XEP VA TIM KIEMn");
printf("n 1.Selection_sortn");;
printf("n 2.Bubble_sortn");
printf("n 3.Insertion_sortn");
printf("n 4.Quick_sortn");
printf("n 5.Merge_sortn");
printf("n 6.Shaker_sortn");
printf("n 0.Tro ve");
printf("nBam mot phim de chon chuc nang:");
scanf("%d",&key);
if(key==0) break;
switch(key)
{
case 1:
clrscr();
luachon();
printf("nntAn phim bat ky de tro lai menu chinh");
getch();
clrscr();
break;
case 2:
clrscr();
suibot();
printf("nntAn phim bat ky de tro lai menu chinh");
getch();
clrscr();
break;
case 3:
clrscr();
tructiep();
printf("n");
printf("nAn phim bat ky de tro lai menu chinh");
getch();
clrscr();
break;
case 4:
clrscr();
nhanh();
printf("n");
printf("nAn phim bat ky de tro lai menu chinh");
getch();
clrscr();
break;
case 5:
clrscr();
hoanhap();
printf("n");
printf("nAn phim bat ky de tro lai menu chinh");
getch();
clrscr();
break;
case 6:
clrscr();
shaker();
27. KHOA CNTT KIỀU TUẤN DŨNG 0903400513
printf("n");
printf("nAn phim bat ky de tro lai menu chinh");
getch();
clrscr();
break;
}
}
// getch();
}
ĐA HÌNH TRONG C++
#include <iostream.h>
#include <conio.h>
#include <math.h>
class hinhve
{
public:
virtual float dientich() = 0;
virtual char *ten() = 0;
virtual void in()=0;
};
class haichieu : public hinhve
{
public:
virtual float chuvi() = 0;
void in()
{
cout<<"ten cua hinh: "<<ten()
<<" ,dien tich la: "<<dientich()
<<" ,chu vi la: "<<chuvi()<<endl;
}
};
class bachieu : public hinhve
{
public:
virtual float thetich() = 0;
void in()
{
cout<<"ten cua hinh: "<<ten()
<<" ,dien tich la: "<<dientich()
<<" ,the tich la: "<<thetich()<<endl;
}
38. KHOA CNTT KIỀU TUẤN DŨNG 0903400513
}
void main()
{
set<float,100> a;
set<float,100> c;
set<float,100> d;
set<float,100> e;
set<float,100> f;
set<sv,100> g;
set<phanso,100> b;
int n,m,l;
float r;
sv A;
phanso s;
cout<<"tttNhap so luong cac so thu ";
cin>>n;
for(int i=0;i<n;i++)
{
cout<<" nhap so thu "<<(i+1)<<":";
cin>>r;
a.them(r);
}clrscr();
cout<<"tttNhap so luong phan so ";
cin>>m;
for(int i=0;i<m;i++)
{
cout<<"tttNhap phan so thu "<<(i+1)<<endl;
cin>>s;
b.them(s);
c.them(s);clrscr();
}
clrscr();
cout<<"tttNhap so luong cac sinh vien ";
cin>>l;
for(int i=0;i<l;i++)
{
cout<<"tttNhap du lieu cho sinh vien thu "<<(i+1)<<endl;
cin>>A;
g.them(A);
clrscr();
}
clrscr();
textcolor(YELLOW+RED);
cprintf("%s","tttchuong trinh da gan cac so 1 cach tu dong ta duoc ");
cout<<"nnday so thuc vua nhap "<<endl;
cout<<a;
cout<<"nnday phan so vua nhap "<<endl;
cout<<b;
39. KHOA CNTT KIỀU TUẤN DŨNG 0903400513
cout<<"ntDay sinh vien vua nhap "<<endl;
cout<<g;
getch();clrscr();
d = a+c;
cout<<"nn hop cua hai tap hop phan so va so thuc la "<<endl;;
cout<<d;
e=a*c;
cout<<"nn giao cua hai tap so thuc va phan so la "<<endl;
cout<<e;
cout<<"nnhieu cua hai tap so thuc va phan so la "<<endl;
f=a-c;
cout<<f;
getch();
}
#include <iostream.h>
#include <conio.h>
#include <math.h>
class PS
{
public:
long tu,mau;
PS()
{
tu=0;
mau=0;
}
~PS(){};
int uscln(long a,long b);
void rutgon();
void nhap();
void xuat();
PS operator+(PS &a);
PS operator-(PS &a);
PS operator*(PS &a);
PS operator/(PS &a);
};
int PS::uscln(long a,long b)
{
if(a!=0 && b!=0)
{
a=abs(a);
b=abs(b);
while(a!=b)
41. KHOA CNTT KIỀU TUẤN DŨNG 0903400513
{
a.tu=tu*a.mau+mau*a.tu;
a.mau=mau*a.mau;
return a;
}
PS PS::operator-(PS &a)
{
a.tu=tu*a.mau-mau*a.tu;
a.mau=mau*a.mau;
return a;
}
PS PS::operator*(PS &a)
{
a.tu=tu*a.tu;
a.mau=mau*a.mau;
return a;
}
PS PS::operator/(PS &a)
{
a.tu=tu*a.mau;
a.mau=mau*a.tu;
return a;
ĐẾM SỐ LẦN 1 KÍ TỰ XUẤT HIỆN TRONG CHUỖI
#include <stdio.h>
#include <ctype.h>
void main()
{
char chuoi[80];
int i = 0, count = 0;
printf("nNhap vao mot chuoi bat ky : ");
gets(chuoi);
while (chuoi[i] != 0)
{
if (isalpha(chuoi[i++]))
count++;
}
printf("So ky tu trong chuoi = %d", count);
getch();
}
42. KHOA CNTT KIỀU TUẤN DŨNG 0903400513
BÀI TOÁN ANCAROKHI
#include <stdio.h>
void main()
{
int dai, rong;
printf("nBai toan Ancarokhi : Tim dien tich hinh chu nhat co chieu dai gap
hai");
printf("nchieu rong va dien tich = chu vi");
for (dai = 1; dai < 100; dai ++)
for (rong=1; rong < 100; rong++)
if (dai == 2 * rong && (dai + rong)*2 == dai*rong)
printf("nDai = %d; Rong = %d", dai, rong);
getch();
}
CHỨNG MINH ĐẲNG THỨC AN CASI
#include <stdio.h>
unsigned long vetrai(unsigned long n)
{
unsigned long tmp=0, i;
for (i=1; i<=n; i++)
tmp += i*i*i*i;
return tmp;
}
unsigned long vephai(unsigned long n)
{
unsigned long tmp;
tmp = (long)6*n*n*n*n*n + (long)15*n*n*n*n + (long)10*n*n*n - n;
tmp = tmp / (long)30 ;
return tmp;
}
void main()
{
unsigned long tong1, tong2, n;
for (n=1; n<=50; n++)
{
43. KHOA CNTT KIỀU TUẤN DŨNG 0903400513
tong1 = vetrai(n);
tong2 = vephai(n);
if (tong1 == tong2)
{
printf("nSo %d thoa man dang thuc An Casi. ", n);
printf("Tong1 = %ld - Tong2 = %ld", tong1, tong2);
}
else
{
printf("nSo %d khong thoa man dang thuc An Casi. ", n);
printf("Tong1 = %ld - Tong2 = %ld", tong1, tong2);
}
}
getch();
}
HIỆN BẢNG MÃ ASCII
#include <stdio.h>
#include <conio.h>
void main()
{
int i, j;
clrscr();
printf(" ");
for (j=0; j<16; j++)
printf("%3d", j);
for (i=2; i<16; i++)
for (j=0; j<16; j++)
{
if (j == 0)
printf("n%2d ", i);
printf(" %c", i*16+j);
}
getch();
}
IN RA NĂM ÂM LỊCH TƯƠNG ỨNG VỚI NĂM NHẬP VÀO
#include <stdio.h>
#include <conio.h>
44. KHOA CNTT KIỀU TUẤN DŨNG 0903400513
void main()
{
unsigned nam;
char can[][5] = {"Giap", "At", "Binh", "Dinh", "Mau", "Ky",
"Canh", "Tan", "Nham", "Quy"};
char chi[][5] = {"Ty", "Suu", "Dan", "Meo", "Thin", "Ty",
"Ngo", "Mao", "Than", "Dau", "Tuat", "Hoi"};
printf("nNhap nam can biet : ");
scanf("%d", &nam);
printf("Nam am lich cua %d la %s %s", nam, can[(nam+6)%10],
chi[(nam+8)%12]);
getch();
}
IN RA BẢNG CỬU CHƯƠNG
#include <stdio.h>
#include <conio.h>
#include <string.h>
void main()
{
int i, j;
char chuoi[] = "B A N G C U U C H U O N G";
char ten[10][5] = {"","","Hai", "Ba", "Bon", "Nam",
"Sau", "Bay", "Tam", "Chin"};
clrscr();
textcolor(YELLOW);
gotoxy((80 - strlen(chuoi)) / 2, 1);
cprintf("%snn", chuoi);
for (i=2; i<=9; i++)
{
gotoxy(10*(i-2) + (10 - strlen(ten[i]))/2, 4);
textcolor(i);
cprintf("%s", ten[i]);
}
for (j=1; j<=10; j++)
for (i=2; i<=9; i++)
{
gotoxy(10*(i-2) + 1, j+4);
textcolor(i);
cprintf("%dx%2d = %2d", i, j, i*j);
}
getch();
}
45. KHOA CNTT KIỀU TUẤN DŨNG 0903400513
NHẬP VÀ IN CHUỖI
#include <stdio.h>
#include <conio.h>
void main()
{
char name[80];
printf("nXin cho biet ten cua ban : ");
gets(name);
printf("Chao %sn", name);
getch();
}
GIẢI HỆ PHƯƠNG TRÌNH BẬC NHẤT
#include <stdio.h>
#include <conio.h>
void main()
{
int a, b, c, d, e, f, dthuc;
float x, y;
printf("nNhap vao cac he so a,b,c,d,e,f : ");
scanf("%d%d%d%d%d%d", &a, &b, &c, &d, &e, &f);
dthuc = b*d - e*a;
if (dthuc != 0)
{
y = (float)(c*d-a*f)/dthuc;
x = (float)(b*f-c*e)/dthuc;
printf("Nghiem x = %f, y = %f", x, y);
}
else
printf("nHe phuong trinh vo ngiem.");
getch();
}
46. KHOA CNTT KIỀU TUẤN DŨNG 0903400513
TÍNH THỨ CỦA NGÀY
#include <stdio.h>
#include <conio.h>
struct date
{
int month;
int day;
int year;
} date_1;
long int funct1 (int y,int m)
{
long int result;
if ( m <= 2 )
y -= 1;
result = y;
return (result);
}
long int funct2 (int m)
{
long int result;
if ( m <= 2 )
result = m + 13;
else
result = m + 1;
return(result);
}
long int day_count (int m, int d, int y)
{
long int number;
number = 1461 * funct1(y,m) / 4 + 153 * funct2(m) / 5 + d;
return (number);
}
void main ()
{
long int number_of_days1;
int day_of_week;
printf ("Nhap vao mot ngay (dd mm yyyy), vd 12 03 1999 n");
scanf ("%d %d %d", &date_1.day, &date_1.month, &date_1.year);
number_of_days1 = day_count (date_1.month, date_1.day, date_1.year);
printf ("nNgay la : " );
day_of_week = (number_of_days1 - 621049) % 7;
switch (day_of_week)
{
case 0 :
printf ("Chu Nhat,");
break;
47. KHOA CNTT KIỀU TUẤN DŨNG 0903400513
case 1 :
printf ("Thu Hai,");
break;
case 2 :
printf ("Thu Ba,");
break;
case 3 :
printf ("Thu Tu,");
break;
case 4 :
printf ("Thu Nam,");
break;
case 5 :
printf ("Thu Sau,");
break;
case 6 :
printf ("Thu Bay,");
break;
}
getch();
}
CHUYỂN SỐ LA MÃ SANG SỐ Ả RẬP
#include <iostream>
#include <conio.h>
#include <string.h>
int doigt(char chuoi[],int i);
void loi();
void main()
{
char chuoi[20];
cout<<"Nhap chuoi:";
cin.get(chuoi,20);
int nam=0;
for(int i=0;i<strlen(chuoi);i++)
nam+=doigt(chuoi,i);
cout<<nam<<endl;
getch();
}
int doigt(char chuoi[],int i)
{
if(!(chuoi[i]=='I'||chuoi[i]=='V'||chuoi[i]=='X'||chuoi[i]=='L'||
chuoi[i]=='C'||chuoi[i]=='D'||chuoi[i]=='M'))
loi();
if(chuoi[i]==chuoi[i+1]&&chuoi[i]==chuoi[i+2]&&chuoi[i]==chuoi[i+3])
loi();
if(chuoi[i]=='I')
50. KHOA CNTT KIỀU TUẤN DŨNG 0903400513
cout<<a<<c;
}
THUẬT TOÁN SẮP XẾP BẰNG RADIX SORT
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <conio.h>
////Radix sort
int getMax(int a[],int n)
{
int max=a[0];
for(int i=1;i<n;i++)
if(max<a[i])
max=a[i];
return max;
}
int countDigit(int n)
{
int count=0;
while(n)
{
count++;
n/=10;
}
return count;
}
int getDigit(int n,int t)
{
int tt=1;
for(int i=0;i<t;i++)tt*=10;
return ((n/tt)%10);
}
void send2Box(int a[],int n,int *b[10],int num[10],int t)
{
for(int i=0;i<n;i++)
{
int tt=getDigit(a[i],t);
b[tt][num[tt]++]=a[i];
}
}
void getValue(int a[],int *b[10],int nn[10])
{
int j=0;
for(int i=0;i<10;i++)
{
if(nn[i]!=0)
{
51. KHOA CNTT KIỀU TUẤN DŨNG 0903400513
for(int k=0;
k<nn[i];
k++)a[j++]=b[i][k];
nn[i]=0;
}
}
}
void radixsort(int a[],int n)
{
int *Box[10];
int number[10];
for(int i=0;i<10;i++)
{
Box[i]=new int [n];
if(Box[i]==NULL)
{
printf("Not enough");
exit(0);
}
number[i]=0;
}
int nn=countDigit(getMax(a,n));
for(int i=0;i<nn;i++)
{
send2Box(a,n,Box,number,i);
getValue(a,Box,number);
}
}
void xuat(int a[], int n)
{
int i=0;
printf("nt");
for (i=0;i<n;i++)
{
printf("%-6d",a[i]) ;
if ((i+1) % 10 == 0)
printf("nt");
}
}
void main()
{
clrscr();
int i,n,A[100];
do
{
printf("ntNhap so phan tu mangnt( n>0 va n<=100) : ");
scanf("%d",&n);
}while (n<0||n>100);
for (i=0;i<n;i++)
{
printf("Nhap A[%d]=",i);
scanf("%d",&A[i]);
}
printf("ntMang moi nhap vao:n");
xuat(A,n);
52. KHOA CNTT KIỀU TUẤN DŨNG 0903400513
printf("nntMang da sap xep :n");
radixsort(A,n);
xuat(A,n);
getch();
}
DANH SÁCH LIÊN KẾT ĐƠN (vừa chèn vừa sắp xếp)
#include <iostream.h>
#include <conio.h>
class Node
{
private:
float data;
Node *next;
public:
Node()
{
data = 0;
next = NULL;
}
Node(float x)
{
data = x;
next = NULL;
}
void setnext(Node *p)
{
next = p;
}
Node * getnext()
{
return next;
}
void setdata(float x)
{
data = x;
}
float getdata()
{
return data;
}
};
53. KHOA CNTT KIỀU TUẤN DŨNG 0903400513
class List
{
private:
Node *head;
public:
List()
{head = NULL;}
List(Node *x)
{head = x;}
void chensapxep(float x)
Node *p,*q;
p = new Node(x);
q = head;
if(head == NULL)
head = p;
else
{
if(p->getdata() < head->getdata())
{
p->setnext(head);
head = p;
}
else
{
while ( q->getnext()!= NULL)
{
if ((q->getdata()< p->getdata() && q->getnext()->getdata()
>p->getdata())
|| (q->getdata()==p->getdata() && q->getnext()->getdata()
>=p->getdata()))
{
p->setnext(q->getnext());
q->setnext(p);
break;
}
else
q = q->getnext();
}
if (q->getnext()==NULL)
q->setnext(p);
}
}
}
void show()
{
54. KHOA CNTT KIỀU TUẤN DŨNG 0903400513
Node *p = head;
p = p->getnext();
if( head != NULL)
{
while(p != NULL)
{
cout<<p->getdata()<<" ";
p = p->getnext();
}
}
}
};
void main()
{
float so;
List p;
do
{
cout<<"Nhap vao so (nhap 0 de thoat):";
cin>>so;
p.chensapxep(so);
}while(so != 0);
p.show();
getch();
}
ĐẾM KÍ TỰ TRONG MỘT CHUỖI ASCII
#include <stdio.h>
#include <ctype.h>
#include<conio.h>
void main()
{
char chuoi[80];
int i = 0, count = 0;
printf("nNhap vao mot chuoi bat ky : ");
gets(chuoi);
while (chuoi[i] != 0)
{
if (isalpha(chuoi[i++]))
count++;
}
printf("So ky tu trong chuoi = %d", count);
getch();
}
55. KHOA CNTT KIỀU TUẤN DŨNG 0903400513
BIỂU DIỄN SỐ DƯỚI DẠNG BIT
#include <stdio.h>
#include <conio.h>
void main()
{
unsigned int mang[24], i;
int bit[16], k, index;
printf("nNhap vao 23 gia tri nguyen : ");
for (i=0; i<23; i++)
scanf("%d",&mang[i]);
printf(" FEDCBA9876543210");
for (i=0; i<23; i++)
{
k = mang[i];
for (index = 0; index < 16; index++)
bit[index] = 0;
index = 15;
while (k)
{
bit[index--] = k%2;
k /= 2;
}
printf("n%5d ",mang[i]);
for (index=0; index<16; index++)
if (bit[index] == 1)
printf("*");
else
printf("-");
}
getch()
ĐẢO NGƯỢC CHUỖI
char *dnchuoi(char *s)
{
char *tmp, i;
i = 0;
tmp = (char *)malloc(strlen(s)+1);
while (i<strlen(s))
*(tmp+i) = *(s + strlen(s) - i++ - 1);
*(tmp+i) = 0;
return tmp;
56. KHOA CNTT KIỀU TUẤN DŨNG 0903400513
}
void main()
{
char hello[] = "Hello World";
char *s;
printf("nChuoi ban dau = %s", hello);
s = dnchuoi(hello);
printf("nChuoi dao nguoc = %s", s);
getch();
}
CHƯƠNG TRÌNH XEM TỆP TIN
#include <stdio.h>
#include <conio.h>
void main()
{
FILE *fp;
char filename[50], s[255], *hang[1000], c;
int nline = 0, line = 0, i;
printf("nNhap ten tap tin muon xem : ");
gets(filename);
if ((fp = fopen(filename,"r")) == NULL)
printf("nKhong the mo tap tin %s", filename);
else
{
while (!feof(fp))
{
fgets(s, 255, fp);
hang[nline] = (char *)malloc(strlen(s));
strcpy(hang[nline], s+1);
nline++;
}
do {
clrscr();
i = line;
while (i<line+26 && i<nline)
printf("%s", hang[i++]);
c = getch();
if (c == 0)
{
c = getch();
switch(c)
{
case 72 : if (line > 0)
57. KHOA CNTT KIỀU TUẤN DŨNG 0903400513
line--;
break;
case 80 : if (line+25 < nline)
line++;
break;
}
}
} while (c != 27);
fclose(fp);
}
}
BÀI TOÁN TRĂM TRÂU TRĂM CỎ
/* Giai bai toan co :
Tram trau tram co
Trau dung an nam
Trau nam an ba
Trau gia an mot
*/
#include <stdio.h>
#include <conio.h>
void main()
{
int tdung, tnam, tgia, phuongan=0;
for (tdung = 1; tdung <= 98; tdung ++)
for (tnam = 1; tnam < 99 - tdung; tnam ++)
for (tgia = 1; tgia < 99 - (tdung + tnam); tgia++)
if ((tdung*5 + tnam*3 + tgia) == 100)
{
printf("nTrau dung : %5d ; Trau nam : %5d ; Trau gia : %5d",
tdung, tnam, tgia);
phuongan++;
}
printf("nTong cong co %d phuong an.", phuongan);
getch();
}
LOẠI BỎ KHOẢNG TRỐNG THỪA TRONG CHUỖI
#include <stdio.h>
58. KHOA CNTT KIỀU TUẤN DŨNG 0903400513
#include <string.h>
#include <conio.h>
#pragma warn -pia
char *trim(char *chuoi)
{
char *p;
while (p = strstr(chuoi, " "))
memmove(p, p+1, strlen(chuoi) - (p - chuoi));
if (chuoi[0] == ' ')
memmove(chuoi, chuoi+1, strlen(chuoi) - 1);
if (chuoi[strlen(chuoi)-1] == ' ')
chuoi[strlen(chuoi)-1] = 0;
return chuoi;
}
void main()
{
char chuoi[125];
printf("nNhap chuoi mau : ");
textattr(0x1e);
gets(chuoi);
trim(chuoi);
printf("nChuoi sau khi da trim : ");
textattr(0x1e);
cputs(chuoi);
getch();
}
TÌM TẤT CẢ CÁC ƯỚC CỦA MỘT SỐ N
#include <stdio.h>
#include <conio.h>
void main()
{
int n, i;
printf("Cho gia tri N = ");
scanf("%d", &n);
printf("Cac uoc so cua %d la :n", n);
for (i=1; i<n; i++)
if ((n % i) == 0)
printf("%5d", i);
59. KHOA CNTT KIỀU TUẤN DŨNG 0903400513
getch();
}
BỘI SỐ CHUNG VÀ ƯỚC SỐ CHUNG
#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);
}
void main()
{
unsigned n, m;
printf("nNhap hai vao so nguyen duong : ");
scanf("%u%u", &n, &m);
printf("nUSCLN cua %u va %u = %u", n, m, USCLN(n,m));
printf("nBSCNN cua %u va %u = %u", n, m, BSCNN(n,m));
getch();
}
TRỘN HAI DÃY GIẢM THÀNH MỘT DÃY TĂNG
#include <stdio.h>
#include <conio.h>
#define MAX 10
void main()
{
int a[MAX], b[MAX], c[2*MAX], n1, n2, i, i1, i2;
60. KHOA CNTT KIỀU TUẤN DŨNG 0903400513
printf("nCho biet so phan tu cua mang thu nhat : ");
scanf("%d", &n1);
printf("Nhap vao cac phan tu (giam dan) cua mang thu nhat : ");
for (i=0; i<n1; i++)
scanf("%d", &a[i]);
printf("nCho biet so phan tu cua mang thu hai : ");
scanf("%d", &n2);
printf("Nhap vao cac phan tu (giam dan) cua mang thu hai : ");
for (i=0; i<n2; i++)
scanf("%d", &b[i]);
i1 = n1-1;
i2 = n2-1;
for (i=0; i<n1 + n2; i++)
{
if (i1 < 0 || i2 < 0)
break;
if (a[i1] < b[i2])
{
c[i] = a[i1];
i1--;
}
else
{
c[i] = b[i2];
i2--;
}
}
if (i1 >= 0)
while (i1 >= 0)
c[i++] = a[i1--];
if (i2 >= 0)
while (i2 >= 0)
c[i++] = b[i2--];
printf("nCac phan tu cua mang tron : ");
for (i=0; i<n1+n2; i++)
printf("%d ", c[i]);
getch();
}
TÍNH TÍCH HAI MA TRẬN
#include<conio.h>
#include<stdio.h>
#include<alloc.h>
void main()
{
61. KHOA CNTT KIỀU TUẤN DŨNG 0903400513
int *a,*b,*c;
int m,n;
int i,j;
clrscr();
//Nhap so hang so cot
printf("Nhap vao m:");scanf("%d",&m);
printf("Nhap vao n:");scanf("%d",&n);
//Cap phat bo nho
a=(int*)calloc(m*n,sizeof(int));
b=(int*)calloc(m*n,sizeof(int));
c=(int*)calloc(m*n,sizeof(int));
// Nhap so lieu va tinh toan
for(i=1;i<=m;i++)
for(j=1;j<=n;j++)
{
printf("Nhap vao a[%d,%d]=",i,j);scanf("%d",&a[(i-1+j)+((i-1)*(n-1))]);
}
for(i=1;i<=m;i++)
for(j=1;j<=n;j++)
{
printf("Nhap vao b[%d,%d]=",i,j);scanf("%d",&b[(i-1+j)+((i-1)*(n-1))]);
c[(i-1+j)+((i-1)*(n-1))]=a[(i-1+j)+((i-1)*(n-1))]+b[(i-1+j)+((i-1)*(n-
1))];
}
// xuat cac mang a,b,c ra man hinh
for(i=1;i<=m;i++)
for(j=1;j<=n;j++)
{
printf("t%d",a[(i-1+j)+((i-1)*(n-1))]);
if(j==n)printf("n");
}
printf("n===========n");
for(i=1;i<=m;i++)
for(j=1;j<=n;j++)
{
printf("t%d",b[(i-1+j)+((i-1)*(n-1))]);
if(j==n)printf("n");
}
printf("n===========n");
for(i=1;i<=m;i++)
for(j=1;j<=n;j++)
{
printf("t%d",c[(i-1+j)+((i-1)*(n-1))]);
if(j==n)printf("n");
}
getch();
}
62. KHOA CNTT KIỀU TUẤN DŨNG 0903400513
IN RA CÁC SỐ HOÀN HẢO TỪ MỘT SỐ N NHẬP VÀO
#include <stdio.h>
int main(void)
{
int i , j , n , tong ;
printf("n Nhập vào N = "); scanf("%d",&n);
for ( i = 2 ; i <=n ; i++ )
{
tong = 1 ;
for ( j = 2; j <= i / 2 ; j++ )
if ( i % j == 0 ) tong += j;
if ( tong == i ) printf(" %10d ", i );
}
getch();
return 0;
}
IN RA LỊCH CỦA MỘT NĂM > 1700
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
int songay(int,int);
bool namnhuan(int nam);
void InLich(int,int);
int ThuDauTien(int,int);
void main()
{
int nam;
char chon;
do
{
do
{
cout<<"Nhap vao nam(> 1700): ";
cin>>nam;
}while(nam < 1700);
for(int i = 1;i <= 12;i++)
{
cout<<"Thang "<<i<<endl;
InLich(i,nam);
cout<<endl;
}
63. KHOA CNTT KIỀU TUẤN DŨNG 0903400513
cout<<"nBan co muon tiep tuc khong(y/n): ";
cin>>chon;
system("cls");
}while(chon == 'y');
cout<<"Thanh Nam cam on ban da su dung chuong trinh {an Enter de thoat)";
getch();
}
int songay(int thang,int nam)
{
switch(thang)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
return 31;
case 2:
if(namnhuan(nam))
return 29;
else
return 28;
case 4:
case 6:
case 9:
case 11:
return 30;
}
return 0;
}
bool namnhuan(int nam)
{
return ((nam % 4 == 0 && nam % 100 != 0)||(nam % 400 == 0));
}
void InLich(int thang,int nam)
{
int ngayd = ThuDauTien(thang,nam);
if(ngayd == 0)
ngayd = 7;
int i;
int sn = songay(thang,nam);
cout<<"nMontTUEtWEDtTHUtFRItSATtSunn";
for(i = 1;i <= ngayd - 1;i++)
cout<<"t";
for(i = 1;i <= sn;i++)
{
cout<<i<<"t";
64. KHOA CNTT KIỀU TUẤN DŨNG 0903400513
if((i + ngayd - 1) % 7 == 0)
cout<<endl;
}
}
long int funct1 (int nam,int thang)
{
long int result;
if ( thang <= 2 )
nam -= 1; //
result = nam;
return (result);
}
long int funct2 (int thang)
{
long int result;
if ( thang <= 2 )
result = thang + 13;
else
result = thang + 1;
return(result);
}
long int day_count (int thang, int nam)
{
long int number;
number = 1461 * funct1(nam,thang) / 4 + 153 * funct2(thang) / 5 + 1;
return (number);
}
int ThuDauTien(int thang,int nam)
{
long int number_of_days1;
int day_of_week;
number_of_days1 = day_count (thang, nam);
day_of_week = (number_of_days1 - 621049) % 7;
return day_of_week;
}
KIỂM TRA NGOẶC ĐÓNG MỞ CÓ ĐÚNG
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
65. KHOA CNTT KIỀU TUẤN DŨNG 0903400513
#include<string.h>
#define max 100
int stack[max],Top=-1;
void push(int stack[],int &Top,int X)
{
if (Top==max-1)
{
puts("Stack day");
exit(3);
}
else
{
Top++;
stack[Top]=X;
}
}
int pop(int stack[],int &Top)
{
int tam;
if (Top==-1) return Top;
else
{
tam=stack[Top];
Top--;
return tam;
}
}
void DauNgoac(char s[],int n)
{
int i;
for(i=0;i<n;i++)
{
if (s[i]=='(') push(stack,Top,1);
if (s[i]==')'&&pop(stack,Top)==-1)
{
Top=-2;
break;
}
}
if (Top==-1) printf("nDung");
else printf("nSai");
}
void main()
{
clrscr();
char s[max];
int n=
printf("Nhap chuoi:");
gets(s);
n=strlen(s);
DauNgoac(s,n);
getch();
}
67. KHOA CNTT KIỀU TUẤN DŨNG 0903400513
thu(0);
}
void main()
{
tim();
getch();
}
IN RA MỘT SỐ HEX TƯƠNG ỨNG VỚI MỘT SỐ NGUYÊN DƯƠNG
#include <stdio.h>
#include <conio.h>
void main()
{
unsigned number;
char hex[] = "0123456789ABCDEF";
printf("nNhap vao mot gia tri nguyen duong 16 bit : ");
scanf("%u", &number);
printf("Gia tri Hex tuong ung = %c%c%c%c",
hex[number/0x1000], hex[(number/0x100)%0x10],
hex[(number/0x10)%0x10], hex[number%0x10]);
getch();
}
LIỆT KÊ RA CÁC HOÁN VỊ CỦA N PHẦN TỬ
#include <stdio.h>
#include <conio.h>
#define MAX 10
int mang[MAX], n;
void swap (int *x, int *y)
{
int tmp;
tmp = *x;
*x = *y;
*y = tmp;
}
void hoanvi(int k)
{
68. KHOA CNTT KIỀU TUẤN DŨNG 0903400513
int j;
if (k==1)
{
printf("n");
for (j=0; j<n; j++)
printf("%d ", mang[j]);
}
else
for (j=k-1; j>=0; j--)
{
swap(&mang[k-1], &mang[j]);
hoanvi(k-1);
swap(&mang[j], &mang[k-1]);
}
}
void main()
{
int i;
printf("nCho biet so phan tu (N < 10) : ");
scanf("%d", &n);
for (i=0; i<n; i++)
mang[i] = i;
hoanvi(n);
getch();
}
IN CHUỖI THEO CÁC TỪ MỖI TỪ MỘT DÒNG
#include <stdio.h>
#include <conio.h>
#include <string.h>
void main()
{
char s[50];
int i, len;
printf("nNhap vao mot chuoi : ");
gets(s);
len = strlen(s);
i = 0;
while (i<len)
{
while (s[i] == ' ' && i<len)
i++;
while (s[i] != ' ' && i<len)
putc(s[i++], stdout);
69. KHOA CNTT KIỀU TUẤN DŨNG 0903400513
putc('n', stdout);
}
getch();
}
IN RA CÁC CHỮ SỐ HÀNG TRĂM - HÀNG CHỤC - ĐƠN VỊ
#include <stdio.h>
#include <conio.h>
void main()
{
int n, tram, chuc, donvi;
clrscr();
printf("nNhap vao mot so tu 100 - 999 : ");
scanf("%d", &n);
tram = n;
donvi = tram % 10;
tram /= 10;
chuc = tram % 10;
tram /= 10;
printf("nSo hang tram = %d", tram);
printf("nSo hang chuc = %d", chuc);
printf("nSo hang don vi = %d", donvi);
getch();
}
TÌM PHẦN TỬ LỚN NHẤT VÀ NHỎ NHẤT TRONG MẢNG MỘT CHIỀU
#include <conio.h>
#include <stdlib.h>
void main()
{
int mang[20];
int i, minval, maxval;
/* Khoi tao mang ngau nhien */
randomize();
70. KHOA CNTT KIỀU TUẤN DŨNG 0903400513
for (i=0; i<20; i++)
mang[i] = random(100);
/* Tim gia tri lon nhat va nho nhat */
minval = maxval = mang[0];
for (i=1; i<20; i++)
{
if (maxval < mang[i])
maxval = mang[i];
else if (minval > mang[i])
minval = mang[i];
}
/* In mang */
clrscr();
for (i=0; i<20; i++)
{
if (mang[i] == maxval)
textcolor(YELLOW);
else if (mang[i] == minval)
textcolor(RED);
else
textcolor(WHITE);
cprintf("%3d", mang[i]);
}
getch();
}
TÌM TỔ HỢP CHẬP K CỦA N PHẦN TỬ
#include <stdio.h>
#include <conio.h>
unsigned long giaithua(int n)
{
unsigned long ketqua = 1;
int i;
for (i=2; i<=n; i++)
ketqua *= i;
return ketqua;
}
unsigned long to_hop_chap(int k, int n)
{
return giaithua(n) / (giaithua(k) * giaithua(n-k));
}
void main()
{
71. KHOA CNTT KIỀU TUẤN DŨNG 0903400513
int n, k;
printf("nNhap vao gia tri N va K : ");
scanf("%d%d", &n, &k);
printf("Top hop chap %d cua %d = %lu", k, n, to_hop_chap(k, n));
getch();
}
CHƯƠNG TRÌNH ĐỌC SỐ CÓ 3 CHỮ SỐ
/* Day la chuong trinh doc so co 3 chu so hay mot so co 2 cu so tham chi so co
1 chu so
Duoc viet boi Vu Thanh Nam */
#include<iostream.h>
#include<conio.h>
void main()
{
int a;
cout<<"Nhap vao mot so co 3 hay 2 tham chi 1 chu so: ";
cin>>a;
int hangtram=a/100;
int hangchuc=((a/10)%10);
int hangdonvi=a%10;
switch(hangtram)
{
case 1 :cout<<"Mot tram ";break;
case 2 :cout<<"Hai tram ";break;
case 3 :cout<<"Ba tram ";break;
case 4 :cout<<"Bon tram ";break;
case 5 :cout<<"Nam tram ";break;
case 6 :cout<<"Sau tram ";break;
case 7 :cout<<"Bay tram ";break;
case 8 :cout<<"Tam tram ";break;
case 9 :cout<<"Chin tram ";break;
}
switch(hangchuc)
{
case 0:
if(hangdonvi==0)
cout<<"";
else
{if(hangchuc==0&&hangtram==0)
cout<<"";
else
cout<<"ninh";}
break;
case 1:cout<<"muoi";break;
case 2:cout<<"hai muoi";break;
72. KHOA CNTT KIỀU TUẤN DŨNG 0903400513
case 3:cout<<"ba muoi";break;
case 4:cout<<"bon muoi";break;
case 5:cout<<"nam muoi";break;
case 6:cout<<"sau muoi";break;
case 7:cout<<"bay muoi";break;
case 8:cout<<"tam muoi";break;
case 9:cout<<"chin muoi";break;
}
switch(hangdonvi)
{
case 0:cout<<"Khong";break;
case 1:
if(hangchuc==1||(hangtram==0&&hangchuc==0))
cout<<" mot";
else
cout<<" mo't";
break;
case 2:cout<<" hai";break;
case 3:cout<<" ba";break;
case 4:
if(hangchuc==1)
cout<<" bon";
else
{if(hangchuc==0&&hangtram==0)
cout<<"bon";
else
cout<<" tu";}
break;
case 5:
if(hangchuc==0&&hangtram==0)
cout<<" nam";
else
cout<<" lam";
break;
case 6:cout<<" sau";break;
case 7:cout<<" bay";break;
case 8:cout<<" tam";break;
case 9:cout<<" chin";break;
}
getch();
}
TÌM SỐ NGÀY TRONG THÁNG CỦA MỘT NĂM BẤT KÌ
/* Day la chuong trinh tinh so ngay trong bat ky mot thang trong nam bat ky
nao do
Duoc viet boi Vu Thanh Nam */
#include<iostream.h>
#include<conio.h>
73. KHOA CNTT KIỀU TUẤN DŨNG 0903400513
#include<math.h>
void main()
{
long int thang, nam;
cout<<"Nhap thang va nam: ";
cin>>thang>>nam;
if ((thang>12||thang<1)||(nam<0))
cout<<"Nhap thang hoac nam sai";
else
{
bool namnhuan=((nam%4==0&&nam%100!=0)||(nam%400==0&&nam%100==0));
int songay;
if(thang==4||thang==6||thang==9||thang==11)
songay = 30;
else
{
if(thang==2)
songay = namnhuan?29:28;
else
songay=31;
}
cout<<"So ngay cua thang "<<thang<<" trong nam "<<nam<<" la:
"<<songay<<endl;
}
getch();
}
KIỂM TRA SỐ NGUYÊN TỐ
/*Ham tinh so nguyen to */
#include<iostream.h>
#include<conio.h>
#include<math.h>
bool LaNguyenTo(int n);
void main()
{
int n;
cout<<"Nhap vao mot so bat ky: ";cin>>n;
if(LaNguyenTo(n))
cout<<"La so nguyen to";
else
{
cout<<"Khong la so nguyen to vi no chia het cho ";
for(int j=2;j<n;j++)
{
if(n%j==0)
cout<<j<<" va ";
}
cout<<"The thoi";
74. KHOA CNTT KIỀU TUẤN DŨNG 0903400513
}
getch();
}
bool LaNguyenTo(int n)
{
bool co=true;
if(n<2)
{cout<<"Du lieu nhap sai va so do ";
return !co;}
else
{
for(int i=2;i<=sqrt(n)+1;i++)
{
if(n%i==0)
{
co=false;
break;
}
}
}
return co;
}
TÌM MAX MIN CỦA 4 SỐ
#include<iostream.h>
#include<conio.h>
#include<math.h>
float max(int a, int b);
float min(int a, int b);
void main()
{
int a,b,c,d;
cout<<"Nhap vao so thu 1: ";cin>>a;
cout<<"Nhap vao so thu 2: ";cin>>b;
cout<<"Nhap vao so thu 3: ";cin>>c;
cout<<"Nhap vao so thu 4: ";cin>>d;
cout<<"max= "<<max(max(max(a,b),max(b,c)),max(c,d))<<" min=
"<<min(min(min(a,b),min(b,c)),min(c,d))<<endl;
cout<<"Vay trung binh cong cua 4 so do la: "<<(a+b+c+d)/4;
getch();
}
float max(int a, int b)
{
if(a>b)
return a;
else
return b;
}
75. KHOA CNTT KIỀU TUẤN DŨNG 0903400513
float min(int a, int b)
{
if(a>b)
return b;
else
return a;
}
TÌM N SỐ FIBONACI ĐẦU TIÊN
#include<iostream.h>
#include<conio.h>
#include<math.h>
long Fibonaci(long n);
void main()
{
long n;
cout<<"Nhap vao mot so nguyen duong: ";
cin>>n;
cout<<"Vay "<<n<< " so Fibonaci dau tien la: ";
Fibonaci(n);
getch();
}
long Fibonaci(long n) //sach giao khoa 253
{
int f1=0,f2=1,fi;
fi=f2;
for(int i = 1;i <= n ;i ++)
{
cout<<fi<<" ";
fi=f1+f2;
f1=f2;
f2=fi;
}
return fi;
}
TÌM SỐ TIỀN NHẬN TRONG N THÁNG BIẾT LÃI SUẤT
#include<iostream.h>
#include<conio.h>
#include<math.h>
void main()
76. KHOA CNTT KIỀU TUẤN DŨNG 0903400513
{
double sotiengui,tienlai,laixuat;
int sothang;
cout<<"Nhap vao so tien gui: ";cin>>sotiengui;
cout<<"Nhap vao lai xuat(%): ";cin>>laixuat;
cout<<"Nhap vao so thang gui: ";cin>>sothang;
for(int i=1;i<=sothang;i++)
{
tienlai=laixuat*sotiengui;
sotiengui=sotiengui+tienlai;
}
cout<<"Vay so tien nguoi do gui trong "<<sothang<<" thang la: "<<sotiengui;
getch();
}
IN RA DÃY SỐ NGƯỢC SO VỚI DÃY NHẬP VÀO
#include <iostream.h>
#include <conio.h>
void main()
{
long a;
do
{
cout<<"a (Phai la so nguyen duong) = ";
cin>>a;
}while(a<0);
cout<<"Vay "<<a<<" duoc viet nguoc lai la: ";
if (a > 0)
{
while (a > 0)
{
cout<<a%10;
a = a / 10;
}
}
getch();
}
TRÒ CHƠI 8 HÒN BI
/*tro choi 8 hon bi
vu thanh nam*/
77. KHOA CNTT KIỀU TUẤN DŨNG 0903400513
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
void main()
{
char chon;
do
{
cout<<"nCHUONG TRINH DOAN HON BI KHAC KHOI LUONG TRONG 8 HON BIn";
cout<<"nt-Co 8 hon bi danh so tu 1 den 8n";
cout<<"t 1 2 3 4 5 6 7 8n";
cout<<"t-Co duy nhat 1 hon bi khac khoi luong khong biet nhe hay nang hon
so bi con lain";
cout<<"t-Chi su dung 1 chiec can 2 dia (can thang bang) de phat hien ra
hon bi do n";
cout<<"t-Ban nghi trong dau va chon 1 trong nhung hon bi don";
cout<<"t-Tra loi trung thuc nhung cau hoi sau, may tinh se doan ra hon bi
ma ban da chon n";
cout<<"t-Luu y: may tinh chi can toi da 3 lann";
cout<<"-----------------------------------------------------------------------
------------- n";
cout<<"Chon -1 neu dia 1 nhe, 1 neu dia 1 nang va 0 neu 2 dia can bang
n";
cout<<"-------------------------------------------------------------------n";
cout<<"1. CAN LAN 1:n";
cout<<"t-Dia 1 gom hon 1,2,3n";
cout<<"t-Dia 2 gom hon 4,5,6 n";
int kq1;
cout<<"Moi ban nhap ket qua can: ";
cin>>kq1;
if(kq1==0)
{
cout<<"2. CAN LAN 2:n";
cout<<"t-Dia 1 gom qua 1n";
cout<<"t-Dia 2 gom qua 7 n";
int kq2;
cout<<"Moi ban nhap ket qua can: ";cin>>kq2;
if(kq2==0)
{
cout<<"3.CAN LAN 3:n";
cout<<"t-Dia 1 gom hon 1 n";
cout<<"t-Dia 2 gom hon 8 n";
int kq3;
cout<<"Moi ban nhap ket qua can: ";cin>>kq3;
if(kq3==1||kq3==-1)
cout<<((kq3==1)?"Hon 8 nhe!!!n":"Hon 8 nang!!!n");
else
cout<<"BAN CHUA HIEU LUAT CHOI - AN GIAN KIAn";
}
else if (kq2==1||kq2==-1)
78. KHOA CNTT KIỀU TUẤN DŨNG 0903400513
cout<<((kq2==1)?"Hon 7 nhe!!!n":"Hon 7 nang!!!n");
else
cout<<"BAN CHUA HIEU LUAT CHOI - AN GIAN KIAn";
}
else if (kq1==-1||kq1==1)
{
cout<<"2.CAN LAN 2:n";
cout<<"t-Dia 1 gom hon 1,2n";
cout<<"t-Dia 2 gom hon 3,4n";
int kq2;
cout<<"Moi ban nhap ket qua can: ";cin>>kq2;
if(kq2==0)
{
cout<<"3.CAN LAN 3:n";
cout<<"t-Dia 1 gom hon 5n";
cout<<"t-Dia 2 gom hon 6n";
int kq3;
cout<<"Moi ban nhap ket qua can: ";cin>>kq3;
if (kq3==1||kq3==-1)
{
if(kq1==1)
cout<<((kq3==1)?"Hon 6 nhe!!n":"Hon 5 nhe!!!n");
else
cout<<((kq3==1)?"Hon 5 nang!!n":"Hon 6 nang!!!n");
}
else
cout<<"BAN CHUA HIEU LUAT CHOI-AN GIAN KIAn";
}
else if(kq2==1||kq2==-1)
{
if(kq1!=kq2)
cout<<((kq1==1)?"Hon 3 nang!!!n":"Hon 3 nhe!!!n");
else
{
cout<<"3.CAN LAN 3:n";
cout<<"t-Dia 1 gom hon 1n";
cout<<"t-Dia 2 gom hon 2n";
int kq3;
cout<<"Moi ban nhap ket qua can: ";cin>>kq3;
if(kq3==0)
cout<<((kq1==1)?"Hon 4 nhe!!!n":"Hon 4 nang!!!n");
else if(kq3==1||kq3==-1)
{
if(kq1==1)
cout<<((kq3==1)?"Hon 1 nang!!n":"Hon 2 nang!!n");
else
cout<<((kq3==1)?"}Hon 2 nhe!!!n":"Hon 1 nhe!!!n");
79. KHOA CNTT KIỀU TUẤN DŨNG 0903400513
}
else
cout<<"BAN CHUA HIEU LUAT CHOI-AN GIAN KIAn";
}
}
else
cout<<"BAN CHUA HIEU LUAT CHOI-AN GIAN KIAn";
}
else
cout<<"BAN CHUA HIEU LUAT CHOIn";
cout<<"nBan co muon choi tiep khong(c/k): ";
cin>>chon;
system("cls");
}while(chon == 'c');
}
KIỂM TRA SỐ ĐỐI XỨNG
#include<iostream.h>
#include<conio.h>
#include<math.h>
long songuoc(long a);
void main()
{
long n;
do
{
cout<<"Nhap vao mot so bat ky: ";
cin>>n;
}while(n<0);
if(n==songuoc(n))
cout<<"La so doi xung";
else
cout<<"Khong la so doi xung";
getch();
}
long songuoc(long a)
{
int tg;
if (a > 0)
{
while (a > 0)
{
tg= a%10;
a = a / 10;
80. KHOA CNTT KIỀU TUẤN DŨNG 0903400513
}
}
return tg;
}
ĐIỀN GIÁ TRỊ CHO MỘT MẢNG VUÔNG THEO CHIỀU KIM ĐỒNG HỒ
#include <stdio.h>
#include <conio.h>
void main()
{
int n, w, hang, cot, chanhangtang, chanhanggiam, chancottang, chancotgiam;
int matran[12][12], tang, giam;
printf("nnChuong trinh in ma tran dac biet.");
do {
printf("nNhap kich thuoc cua ma tran (3 <= n <= 12) : ");
scanf("%d%*c",&n);
} while (! (n >=3 && n<=12) );
hang = cot = 0;
chanhangtang = chancottang = n-1;
chanhanggiam = chancotgiam = 0;
/*
tang co 4 gia tri :
tang = 0 -> tang cot
tang = 1 -> tang hang
tang = 2 -> giam cot
tang = 3 -> giam cot
*/
tang = 0;
for (w=0; w<n*n; w++)
{
matran[hang][cot]= w + 1;
switch(tang)
{
case 0 : if (cot < chancottang)
cot++;
else
{
tang++; // Chuyen sang tang hang
chanhanggiam++;
hang++;
}
break;
case 1 : if (hang < chanhangtang)
hang++;
else
{
tang++; // Chuyen sang giam cot
81. KHOA CNTT KIỀU TUẤN DŨNG 0903400513
chancottang--;
cot--;
}
break;
case 2 : if (cot > chancotgiam)
cot--;
else
{
tang++; // Chuyen sang giam hang
chanhangtang--;
hang--;
}
break;
case 3 : if (hang > chanhanggiam)
hang--;
else
{
tang=0; // Chuyen sang tang cot
chancotgiam++;
cot++;
}
break;
}
}
for (hang=0; hang < n; hang++)
{
printf("n");
for (cot=0; cot < n; cot++)
printf("%4d", matran[hang][cot]);
}
getch();
}
IN HÌNH TAM GIÁC
#include <stdio.h>
#include <conio.h>
void main()
{
int n, i, j;
printf("nNhap chieu cao cua hinh tam giac : ");
scanf("%d", &n);
for (i=0; i<n; i++)
{
for (j=n-1; j>i; j--)
printf(" ");
82. KHOA CNTT KIỀU TUẤN DŨNG 0903400513
for (j=0; j<i*2+1; j++)
printf("*");
printf("n");
}
getch();
}
TRỘN HAI MẢNG TĂNG DẦN THÀNH MỘT MẢNG TĂNG DẦN
/* Tron hai mang tang dan thanh 1 mang tang dan */
#include <stdio.h>
#define MAX 10
void main()
{
int a[MAX], b[MAX], c[2*MAX], n1, n2, i, i1, i2;
printf("nCho biet so phan tu cua mang thu nhat : ");
scanf("%d", &n1);
printf("Nhap vao cac phan tu (tang dan) cua mang thu nhat : ");
for (i=0; i<n1; i++)
scanf("%d", &a[i]);
printf("nCho biet so phan tu cua mang thu hai : ");
scanf("%d", &n2);
printf("Nhap vao cac phan tu (tang dan) cua mang thu hai : ");
for (i=0; i<n2; i++)
scanf("%d", &b[i]);
i1 = i2 = 0;
for (i=0; i<n1 + n2; i++)
{
if (i1 >= n1 || i2 >= n2)
break;
if (a[i1] < b[i2])
{
c[i] = a[i1];
i1++;
}
else
{
c[i] = b[i2];
i2++;
}
}
if (i1 < n1)
while (i1 < n1)
c[i++] = a[i1++];
if (i2 < n2)
83. KHOA CNTT KIỀU TUẤN DŨNG 0903400513
while (i2 < n2)
c[i++] = b[i2++];
printf("nCac phan tu cua mang tron : ");
for (i=0; i<n1+n2; i++)
printf("%d ", c[i]);
getch();
}
TÌM VỊ TRÍ ĐẦU VÀ CUỐI CỦA MỘT DÃY TRONG SỐ
#include<iostream.h>
#include<conio.h>
#include<math.h>
void main()
{
int a,n,m,vtdau=0,vtcuoi=0;
cout<<"Nhap vao so luong so: ";
cin>>n;
cout<<"Ban muon kiem tra so nao: ";
cin>>m;
do
{
cout<<"Nhap vao so thu 1: ";
cin>>a;
}while(a<0);
for(int i=2;i<=n;i++)
{
do
{
cout<<"Nhap vao so thu "<<i<<": ";
cin>>a;
}while(a<0);
if(a==m)
{
if(vtdau==0)
vtdau=i;
vtcuoi=i;
}
}
cout<<"Vay vi tri dau cua so "<< m<< "la: "<<vtdau<<endl;
cout<<"Vay vi tri cuoi cua so "<< m<< "la: "<<vtcuoi<<endl;
getch();
}
TÍNH TỔNG DÃY x^1/1! + x^2/2! + x^3/3! + ... + x^n/n!
84. KHOA CNTT KIỀU TUẤN DŨNG 0903400513
#include<iostream.h>
#include<conio.h>
#include<math.h>
void main()
{
float x,tong=0.0,n,tg,mu=1.0,gt=1.0;
cout<<"Nhap vao mot so thuc x= ";
cin>>x;
cout<<"Nhap vao n= ";cin>>n;
for(int i=1;i<=n;i++)
{
mu=mu*x;
gt=gt*i;
tg=mu/gt;
tong=tong+tg;
}
cout<<"Vay ";
for(int j=2;j<=n;j++)
{
cout<<x<<"^"<<j<<"/"<<j<<"!"<<" + ";
}
cout<<x<<" = "<<(tong);
getch();
}
THÁP HÀ NỘI 3 ĐĨA
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <dos.h>
#define A 0
#define B 1
#define C 2
void hanoi(int from, int to, int dia)
{
int trunggian;
if (dia == 1)
printf("nChuyen 1 dia tu coc %c sang coc %c", 'A'+from, 'A'+to);
else
{
if ((from == A && to == C) || (from == C && to == A))
trunggian = B;
else if ((from == A && to == B) || (from == B && to == A))
trunggian = C;
else if ((from == C && to == B) || (from == B && to == C))
trunggian = A;
85. KHOA CNTT KIỀU TUẤN DŨNG 0903400513
hanoi(from, trunggian, dia-1);
hanoi(from, to, 1);
hanoi(trunggian, to, dia-1);
}
}
void main()
{
int n;
printf("nCho biet so dia ( 3 -> 6 ): ");
do {
scanf("%d", &n);
} while (n < 3 || n > 6);
hanoi(A, C, n);
getch();
}
THÁP HÀ NỘI 4 ĐĨA
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <dos.h>
#define A 0
#define B 1
#define C 2
#define D 3
void hanoi(int from, int to, int dia)
{
int tg1, tg2, dia2;
if (dia <= 1)
printf("nChuyen 1 dia tu coc %c sang coc %c", 'A'+from, 'A'+to);
else
{
if ((from == A && to == D) || (from == D && to == A))
{
tg1 = B;
tg2 = C;
}
else if ((from == A && to == B) || (from == B && to == A))
{
tg1 = C;
tg2 = D;
}
else if ((from == A && to == C) || (from == C && to == A))
{
86. KHOA CNTT KIỀU TUẤN DŨNG 0903400513
tg1 = B;
tg2 = D;
}
else if ((from == B && to == C) || (from == C && to == B))
{
tg1 = A;
tg2 = D;
}
else if ((from == B && to == D) || (from == D && to == B))
{
tg1 = A;
tg2 = C;
}
else if ((from == C && to == D) || (from == D && to == C))
{
tg1 = A;
tg2 = B;
}
dia2 = dia / 2;
if (dia % 2 == 1)
{
hanoi(from, tg1, dia2);
hanoi(from, tg2, dia2);
hanoi(from, to, 1);
hanoi(tg2, to, dia2);
hanoi(tg1, to, dia2);
}
else
{
hanoi(from, tg1, dia2);
if (dia2 > 1)
{
hanoi(from, tg2, dia2-1);
hanoi(from, to, 1);
hanoi(tg2, to, dia2-1);
}
else
hanoi(from, to, 1);
hanoi(tg1, to, dia2);
}
}
}
void main()
{
int n;
printf("nCho biet so dia ( 3 -> 6 ): ");
do {
scanf("%d", &n);
} while (n < 3 || n > 6);
hanoi(A, D, n);
getch();
}
87. KHOA CNTT KIỀU TUẤN DŨNG 0903400513
TÌM CÁC ƯỚC SỐ CỦA N
#include<conio.h>
#include<stdio.h>
void LK_Uoc(int n)//liet ke cac uoc cua n
{
for(int i=1;i<=n;i++)
if(n%i==0)
printf("%4d",i);
}
void main()
{
int n;
printf("nMoi ban nhap so n bat ky n =");
scanf("%d",&n);
printf("nCac uoc so cua n la : n ");
LK_Uoc(n);
getch();
}
KIỂM TRA MA TRẬN B CÓ LÀ MA TRẬN CON CỦA MA TRẬN A
#include<stdio.h>
#include<conio.h>
#define N 2
#define M 5
void search(int b[N][N],int a[M][M])
{
int i,j,k,l,m,x,y,dem,demx,demy;
int timthay=1;
for(k=0;k<=M-N;++k)
{
for(l=0;l<=M-N;++l)
{
dem=demx=demy=0;
x=l;y=k;
for(i=0;i<N;++i)
89. KHOA CNTT KIỀU TUẤN DŨNG 0903400513
short d[]={1,2};
printf("Nhap chieu cao tam giac: ");
int i,num,space;
scanf("%d",&i);
num=2*i+1;
for(int n=0;n<i;++n) {
space=(num-(2*n+1))/2;
while(space-->0)
printf(" ");
int index;
for(int j=0;j<2*n+1;++j) {
index=(j%2)?1:0;
printf("%d",d[index]);
}
printf("n");
}
getch();
}
#include<conio.h>
#include<iostream.h>
//by sakervista http://th6b.net
main()
{
int i,j,k,h;
printf("Nhap Chieu cao h : "); scanf("%d",&h);
for(i=1;i<=h;i++)
{
for(k=1;k<=h-i+1;k++)
{
printf(" "); // in ra khoảng trắng
}
for(j=1;j<=2*i-1;j++)
{
if(j%2!=0) // nếu j chẵn thì in ra
số 2 còn không thì in ra 1
{
printf("1");
}
else
printf("2");
}
printf("n");
90. KHOA CNTT KIỀU TUẤN DŨNG 0903400513
}
getch();
}
CHUYỂN CHUỖI THÀNH SỐ
#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<stdlib.h>
void doi(char *q);
void loc(char q[100]);
void dtp(char q[]);
main()
{char s[90],ti[90]="",tr[90]="",ng[90]="",tam[90],kq[90],*endptr,*q,c;
int i=0;
clrscr();
printf("Nhap chuoi can doi:");
gets(s);
printf("n");
loc(s);
strcpy(tam,strtok(s," "));
strcat(tam," ");