Tổng hợp bài tập C

Code:

#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 : ");

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();

}

pdf82 trang | Chuyên mục: C/C++ | Chia sẻ: dkS00TYs | Lượt xem: 1806 | Lượt tải: 0download
Tóm tắt nội dung Tổng hợp bài tập C, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
songuoc(long a)
{
int tg;
 if (a > 0)
{
while (a > 0)
{
tg= a%10;
a = a / 10;
}
}
 return tg;
}
Điền giá trị cho một mảng vuông theo chiều kim đồng hồ
Code:
#include 
#include 
void main()
{
 int n, w, hang, cot, chanhangtang, chanhanggiam, chancottang, 
chancotgiam;
 int matran[12][12], tang, giam;
 printf("\n\nChuong 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
 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
Code:
#include 
#include 
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(" ");
 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
Code:
/* Tron hai mang tang dan thanh 1 mang tang dan */
#include 
#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)
 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à vị trí cuối của một số trong một dãy số
Code:
#include
#include
#include
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 x^1/1! + x^2/2! + x^3/3! + ... + x^n/n!
Code:
#include
#include
#include
void main()
{
 float x,tong=0.0,n,tg,mu=1.0,gt=1.0;
 cout>x;
 cout>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();
}
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 
Code:
#include 
#include 
#include 
#include 
#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;
 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 6);
 hanoi(A, C, n);
 getch();
}
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:
#include 
#include 
#include 
#include 
#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))
 {
 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 6);
 hanoi(A, D, n);
 getch();
}
câu 12 trang 3:các ước của số n, với n nhập từ bàn phím :
PHP Code: 
#include 
#include 
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(); 
} 
Tìm vị trí đầu và vị trí cuối của một số trong một dãy số. Bài này mình dùng mảng hai 
chiều ai có y kiến pm nhaFPRIVATE "TYPE=PICT;ALT="
PHP Code: 
#include 
#include 
void Nhap_Mang(int A[],int n) 
{ 
for(int i=0;i<n;i++) 
{ 
printf("A[%d=",i); 
scanf("%d",&A[i); 
} 
} 
void Xuat_Mang(int A[],int n) 
{ 
for(int i=0;i<n;i++) 
printf("%4d",A[i]); 
} 
int Tim_X_DT(int A[],int n,int X) 
{ 
for(int i=0;i<n;i++) 
if(A[i]==X) 
return i; 
return 0; 
} 
int Tim_X_CC(int A[],int n,int X) 
{ 
for(int i=n-1;i>=0;i--) 
if(A[i]==X) 
return i; 
return 0; 
} 
void main() 
{ 
int A[100]; 
int n,X; 
printf("\nMoi ban nhap so phan tu n = "); 
scanf("%d",&n); 
Nhap_Mang(A,n); 
printf("\nMang sau khi nhap :"); 
Xuat_Mang(A,n); 
printf("\nMoi ban nhap gia tri X ="); 
scanf("%d",&X); 
int kq=Tim_X_DT(A,n,X); 
if(kq==0) 
printf("\n Mang vua nhap ko co gia tri X"); 
else 
printf("\nGia tri X dau tien trong mang =%d",kq); 
int kq1=Tim_X_CC(A,n,X); 
printf("\nGia tri X cuoi cung trong mang =%d",kq1); 
getch(); 
} 
bai 16 :In danh sách các số hoàn hảo(hoàn hảo =hoàn thiện) nhỏ hơn số N nhập từ user
bài này xin giải như sau nhé:
PHP Code: 
#include 
#include 
int La_HT(int n)//La_HT=La_HH 
{ 
int tong=0; 
for(int i=1;i<n;i++0) 
if(n%i==0) 
tong=tong+i; 
return(tong==n); 
} 
void LK_HT(int n) 
{ 
for(int i=0;i<=n;i++) 
if(La_HT(i)==1) 
printf("%4d",i); 
} 
void main() 
{ 
int n; 
printf("\nMoi ban nhap so n = "); 
scanf("%d",&n); 
printf("\nLiet ke Hoan hao nho hon n :"); 
LK_HT(n); 
getch(); 
} 
bài 12 trang 4 kiem tra nguyen to :
PHP Code: 
#include 
#include 
int La_NT(int n) 
{ 
int dem=0; 
for(int i=1;i<=n;i++) 
if(n%i==0) 
dem++; 
return(dem==2); 
} 
void main() 
{ 
int n; 
printf("\nMoi ban nhap n ="); 
scanf("%d",&n); 
int kq=La_NT(n); 
if(kq==0) 
printf("\nso vua nhap ko phai la NT"); 
else 
printf("\nLa NT"); 
getch(); 
} 
bai 13 trang 4 :cách dễ nhất nè dùng tìm trong mảng cho nó dễ tìm ha hihi
C Code: | Lựa chọn code | Ẩn/Hiện code |
#include
#include
void Nhap_Mang(int A[],int n)
{
for(int i=0;i<n;i++
{
printf("A[%d]=",i);
scanf("%d",&A[i]);
}
}
void Xuat_Mang(int A[],int n)
{
for(int i=0;i<n;i++)
printf("%4d",A[i]);
}
int Tim_Max(int A[],int n)
{
int max=0;
for(int i=1;i<n;i++)
if(A[i]>A[max])
max=i;
return max;
}
void main()
{
int A[100];
int n;
printf("\nMoi ban nhap so pt n = ");
scanf("%d",&n);
Nhap_Mang(A,n);
printf("\nMang sau khi nhap ");
Xuat_Mang(A,n);
int kq=Tim_Max(A,n);
printf("\nSo Lon nhat trong mang tai vi tri =%d, va so do la =%d",kq,A[kq]);
getch();
}
Kiểm tra ma trận B có là ma trận con của ma trận A hay ko :
#include
#include
#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)
{
for(j=0;j<N;++j)
{
if(b[i][j]==a[y][x])dem++;
++x;++demx;
if(demx==N){demx=0;x=l;}
}
++y;++demy;
if(demy==N){demy=0;y=k;}
}
if(dem==N*N)break;
}
if(dem==N*N)break;
}
if(dem!=N*N)timthay=0;
if(timthay==0)printf("\nKo tim thay");
else printf("\nTim thay");
}
void main()
{
clrscr();
int a[M][M]={ 1, 2, 3, 4, 5,
6, 7, 8, 9,10,
11,12,13,14,15,
16,17,18,19,20,
21,22,23,24,25};
int b[N][N]={4, 5,
9,10};
search(b,a);
getch();
}

File đính kèm:

  • pdfTổng hợp bài tập C .pdf