Tải bản đầy đủ (.pdf) (31 trang)

Tổng hợp bài tập lập trình C

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (361.81 KB, 31 trang )

1. Nhp vào mt mng, in ra và tìm s ln nht

- 

- 
- 

- main An
- Input A.
- Display 
- FindMax
main.

#include <stdio.h>
#include <conio.h>
void Input(int A[], int n)
{
for (int i=0; i<n; i++){
printf("A[%d] = ", i); scanf("%d", &A[i]);
}
}
int FindMax(int A[], int n)
{
int max = A[0];
for (int i=1; i<n; i++)
if (max<A[i])
max = A[i];
return max;
}
void Display(int A[], int n)
{


for (int i=0; i<n; i++)
printf("%d ", A[i]);
}
main()
{
int n, A[100];
printf("Input n = "); scanf("%d", &n);
Input(A,n);
Display(A,n);
printf("\nMax = %d", FindMax(A, n));
getch();
}

2. Nhp vào mt mng, in ra và tìm s t và s âm ln nht.

- 

- 
- 


- main A
- Input nA.
- Display 
- MinMax

#include <stdio.h>
#include <conio.h>
#define MAX_INT_16 32767
#define MIN_INT_16 -32768

void Input(int A[], int n)
{
for (int i=0; i<n; i++){
printf("A[%d] = ", i); scanf("%d", &A[i]);
}
}
void MinMax(int A[], int n, int &min, int &max)
{
min = MAX_INT_16;
max = MIN_INT_16;
for (int i=0; i<n; i++){
if (A[i]>=0){
if (A[i]<min)
min = A[i];
}
else{
if (A[i]>max)
max = A[i];
}
}
}
void Display(int A[], int n)
{
for (int i=0; i<n; i++)
printf("%d ", A[i]);
}
main()
{
int n, A[100], min, max;
printf("Input n = "); scanf("%d", &n);

Input(A,n);
Display(A,n);
MinMax(A, n, min, max);
if (min == MAX_INT_16)
printf("\nMang khong co so duong.");
else
printf("\nSo duong be nhat = %d.", min);
if (max == MIN_INT_16)
printf("\nMang khong co so am.");
else
printf("\nSo am lon nhat = %d.\n", max);
getch();
}
3. Nhp 1 mng, in ra và tìm s ng.

- 

- 

- main An
- Input A.
- CheckSquare

- Display
CheckSquare
#include <stdio.h>
#include <conio.h>
#include <math.h>
void Input(int A[], int n)
{

for (int i=0; i<n; i++){
printf("A[%d] = ", i); scanf("%d", &A[i]);
}
}
int CheckSquare(int x)
{
int check = (sqrt(x)*sqrt(x)==x) ? 1 : 0;
return check;
}
void Display(int A[], int n)
{
for (int i=0; i<n; i++){
if (CheckSquare(A[i]))
printf("%d ", A[i]);
}
}
int main()
{
int i, n, A[100];
printf("Nhap n = "); scanf("%d", &n);
Input(A,n);
for (int i=0; i<n; i++)
printf("%d ", A[i]);
printf("\ncac so chinh phuong:\n");
Display(A,n);
getch();
}
4.Nhp vào mt mng s nguyên, tìm các s hoàn ho trong mng.

- 


- 

- main An
- Input A.
- CheckPerfectNumber

- Display
CheckPerfectNumber

#include <stdio.h>
#include <conio.h>
#include <math.h>
void Input(int A[], int n)
{
for (int i=0; i<n; i++){
printf("A[%d] = ", i); scanf("%d", &A[i]);
}
}

int CheckPerfect(int x)
{
int i, check, s = 0;
for (i=1; i<x; i++)
if (x%i==0)s += i;
check = (x==s) ? 1 : 0;
return check;
}
void Display(int A[], int n)
{

for (int i=0; i<n; i++){
if (CheckPerfect(A[i]))
printf("%d ", A[i]);
}
}
main()
{
int i, n, A[100];
printf("Nhap n = "); scanf("%d", &n);
Input(A,n);
for (int i=0; i<n; i++)
printf("%d ", A[i]);
printf("\ncac so hoan hao:\n");
Display(A,n);
getch();
}
5. Nhp vào 1 mng, in ra và kim tra các s nguyên t trong mng

- 

- 
- 

- main An
- Input A.
- CheckPrime

- Display
CheckPrime


#include <stdio.h>
#include <conio.h>
#include <math.h>
void Input(int A[], int n)
{
for (int i=0; i<n; i++){
printf("A[%d] = ", i); scanf("%d", &A[i]);
}
}
int CheckPrim(int x)
{
int i, check, s = 0;
for (i=2; i<=sqrt(x); i++)
if (x%i==0)
return 0;
return 1;
}
void Display(int A[], int n)
{
for (int i=0; i<n; i++){
if (CheckPrim(A[i]))
printf("%d ", A[i]);
}
}
main()
{
int i, n, A[100];
printf("Nhap n = "); scanf("%d", &n);
Input(A,n);
for (int i=0; i<n; i++)

printf("%d ", A[i]);
printf("\ncac so nguyen to:\n");
Display(A,n);
getch();
}
7. Nhp vào 1 ma trn mxn, in ra ma trp và ma trn chuyn v

-  n.
- 
- 

- main 
- Display
- Transpose

#include <stdio.h>
#include <conio.h>
#define R_MAX 50
#define C_MAX 50
void Input(int Ary[][C_MAX], int m, int n)
{
int i,j;
for( i = 0; i < m; i++ )
for( j = 0; j < n; j++ ){
printf("Ary[%d][%d] = ", i, j);
scanf("%d",&Ary[i][j]);
}
}
void Display (int Ary[][C_MAX], int m, int n)
{

int i, j;
for( i = 0; i < m; i++ )
{
for( j = 0; j < n; j++ )
printf("%4d ", Ary[i][j]);
printf("\n");
}
}
void Transpose(int Ary[][C_MAX], int m, int n, int T[][C_MAX])
{
int i,j, s = 0;
for( i = 0; i < m; i++)
for( j = 0; j < n; j++)
T[j][i] = Ary[i][j];
}
int main()
{
int n, m, i, j;
int Ary[R_MAX][C_MAX], T[R_MAX][C_MAX];
printf("\nNhap so hang, so cot: ");
scanf("%d%d",&m, &n);
Input(Ary,m,n);
printf("Ma tran da nhap:\n");
Display(Ary,m,n);
Transpose(Ary, m, n, T);
printf("Ma tran chuyen vi:\n");
Display(T,n,m);
getch();
}
8. Nhp ma trn mxn, hin th và tính tng các phn t ch s hàng chn

và ch s ct l.

- 
 n.
- 
- 

- main Arym, n
- input Ary.
- Display 
- Sum
main 
#include <stdio.h>
#include <conio.h>
void Input(int Ary[10][20], int m, int n)
{
int i,j;
for( i = 0; i < m; i++ )
for( j = 0; j < n; j++ ){
printf("Ary[%d][%d] = ", i, j);
scanf("%d",&Ary[i][j]);
}
}
void Display (int Ary[][20], int m, int n)
{
int i, j;
printf("Display inputed Matrix: \n");
for( i = 0; i < m; i++ )
{
for( j = 0; j < n; j++ )

printf("%4d ", Ary[i][j]);
printf("\n");
}
}
int Sum(int Ary[10][20], int m, int n){
int i,j, s = 0;
for( i = 0; i < m; i+=2)
for( j = 1; j < n; j+=2)
s += Ary[i][j];
return s;
}
int main(){
int Ary[10][20], m, n, i, j;
printf("\nNhap so hang, so cot: ");
scanf("%d%d",&m, &n);
Input(Ary,m,n);
Display(Ary,m,n);
printf("\nTong = %d", Sum(Ary, m, n));
getch();
}
9. Nhp 2 ma trn mxn. Tính tng 2 ma trn.

- A, B n.
- A, BC (C=A+B

- main m, n
- Input 
- Display 
- Sum 
- main Display 


#include <stdio.h>
#include <conio.h>
#define R_MAX 50
#define C_MAX 50
void Input(int Ary[][C_MAX], int m, int n, char AryName[10])
{
int i,j;
for( i = 0; i < m; i++ )
for( j = 0; j < n; j++ ){
printf("%s[%d][%d] = ", AryName, i, j);
scanf("%d",&Ary[i][j]);
}
}
void Display (int Ary[][C_MAX], int m, int n)
{
int i, j;
for( i = 0; i < m; i++ )
{
for( j = 0; j < n; j++ )
printf("%4d ", Ary[i][j]);
printf("\n");
}
}
void Sum(int A[][C_MAX],int B[][C_MAX],int C[][C_MAX],int m, int
n)
{
int i,j;
for( i = 0; i < m; i++)
for( j = 0; j < n; j++)

C[i][j] = A[i][j]+B[i][j];
}

int main()
{
int n, m, i, j;
int A[R_MAX][C_MAX], B[R_MAX][C_MAX], C[R_MAX][C_MAX];
printf("\nNhap so hang, so cot: ");
scanf("%d%d",&m, &n);
printf("\nNhap ma tran A:\n");
Input(A,m,n,"A");
printf("\nNhap ma tran B:\n");
Input(B,m,n,"B");
printf("Ma tran A:\n");
Display(A,m,n);
printf("Ma tran B:\n");
Display(A,m,n);
Sum(A,B,C,m,n);
printf("Tong 2 ma tran:\n");
Display(C,m,n);
getch();
}

19. Nhp vào n chui h tên t bàn phím, chun hóa và sp xp li các
chui
Vin



- main HoTen.

- inputHoTen.
- Trim 

- Sort
- Display

#include <stdio.h>
#include <conio.h>
#include <string.h>
#define MAX 100
#define MAX_LEN 100
void Input(char HoTen[][MAX_LEN], int n)
{
for (int i=0; i<n; i++){
printf("HoTen[%d]: ",i);
gets(HoTen[i]);
}
}
void Trim(char str[])
{
int k, i=0, len = strlen(str);
int j = len;
char tmp[MAX_LEN];
//Xoa khoang trang o dau, cuoi
while (str[i]==' ' && i<len-1) i++;
while (str[j]==' ' && j>0) j ;
for (k=i; k<=j; k++)
tmp[k-i] = str[k];
tmp[k-i+1] = '\0';
len = strlen(tmp);

i = 0, j=0;
while (i<=len){
while (tmp[i]== ' ' && tmp[i+1]==' ') i++;
str[j++] = tmp[i++];
}
}
void Display(char HoTen[][MAX_LEN], int n)
{
for (int i=0; i<n; i++)
printf("\t%s\n",HoTen[i]);
}
void Sort(char HoTen[][MAX_LEN], int n)
{
int i,j;
char Ten[MAX][MAX_LEN],tmp[MAX_LEN];
//Tach
for (i=0; i<n; i++){
char *p = strrchr(HoTen[i],32);
if (p!=NULL)
strcpy(Ten[i],p);
else
strcpy(Ten[i],HoTen[i]);
}
for (i=0; i<n-1; i++)
for (j=i+1; j<n; j++)
if (strcmp(Ten[i],Ten[j])>0){
strcpy(tmp,HoTen[i]);
strcpy(HoTen[i],HoTen[j]);
strcpy(HoTen[j],tmp);
strcpy(tmp,Ten[i]);

strcpy(Ten[i],Ten[j]);
strcpy(Ten[j],tmp);
}
}
int main()
{
int n;
char Ho[MAX][MAX_LEN], Ten[MAX][MAX_LEN],
HoTen[MAX][MAX_LEN];
printf("Nhap n = "); scanf("%d",&n);
fflush(stdin);
Input(HoTen,n);
printf("Truoc khi sap:\n");
Display(HoTen,n);
printf("Sau khi sap:\n");
for (int i=0; i<n; i++)
Trim(HoTen[i]);
Sort(HoTen,n);
Display(HoTen,n);
getch();
}


Bài 11. u trúc s phc và thc hin các phép toán.
Vit cu trúc ca mt s phc và các hàm thc hin các phép
toán ( cng, tr, nhân, chia) lên nó.
Hãy to mt menu la chn thao tác ri hin th kt qu thc hin các phép toán
vi hai s phc nhp vào t bàn phím.
#include <conio.h>
#include <stdio.h>

#include <string.h>
#include <math.h>
int i;
/* Khai báo cấu trúc số phức */
typedef struct sophuc
{
float thuc, ao;
}sophuc;

/* hàm nhập một số phức */
void Input(sophuc &a)
{
printf("thuc = ");scanf("%f",&a.thuc);
printf("ao = ");scanf("%f",&a.ao);
}
/* Hàm hiển thị một số phức */
void Output(sophuc &a)
{
printf("%0.2f+i%0.2f\n",a.thuc, a.ao);
}
/* Hàm thực hiện phép toán cộng trên hai số phức */
sophuc cong(sophuc a, sophuc b)
{
sophuc c;
c.thuc = a.thuc+b.thuc;
c.ao = a.ao+b.ao;
return c;
}
/* Hàm thực hiện phép toán trừ trên hai số phức */
sophuc tru(sophuc a, sophuc b)

{
sophuc c;
c.thuc = a.thuc - b.thuc;
c.ao = a.ao - b.ao;
return c;
}
/* Hàm thực hiện phép toán nhân trên hai số phức */
sophuc nhan(sophuc a, sophuc b)
{
sophuc c;
c.thuc = a.thuc*b.thuc - a.ao*b.ao;
c.ao = a.thuc*b.ao + a.ao*b.thuc;
return c;
}
/* Hàm thực hiện phép toán chia trên hai số phức */
sophuc chia(sophuc a, sophuc b)
{
sophuc c;
int k = a.ao * a.ao + b.ao*b.ao;
if (k == 0)
{
printf("Mau so bang 0+0i");
}
else
{
c.thuc = (a.thuc*b.thuc + a.ao * b.ao)/k;
c.ao = (a.ao*b.thuc - a.thuc*b.ao)/k;
}
return c;
}

/* Hàm main sử dụng các hàm thành viên */
main()
{
sophuc a,b,cc;
Input(a);
Input(b);
char c;
tt:
printf("Thuc hien mot trong cac chuc nang sau: \n");
printf("1. Nhap lai 2 so phuc\n");
printf("2. Cong 2 so phuc\n");
printf("3. Tru 2 so phuc\n");
printf("4. Nhan 2 so phuc\n");
printf("5. Chia 2 so phuc\n");
printf("Esc. de thoat chuong trinh\n");
fflush(stdin);
c = getch();
switch(c)
{
case 49:
Input(a);
Input(b);
goto tt;
case 50:
cc = cong(a,b);
Output(cc);
goto tt;
case 51:
cc = tru(a,b);
Output(cc);

goto tt;
case 52:
cc = nhan(a,b);
Output(cc);
goto tt;
case 53:
if(b.thuc!=0 || b.ao!=0)
{
cc = chia(a,b);
Output(cc);
}
else
{
printf("Mau so bang 0+0i");
}
goto tt;
case 27:
goto thoat;
}
goto tt;
thoat:
//getch();
return 0;
}

Bài 12. Nhp danh sách nhân viên, si thông tin nhân viên.
Vin lý thông tin ca các nhân viên trong m vi thông
tin v nhân viên gm:
- Mã nhân viên; - Tên nhân viên; - Gii tính; - 
Thc hin mt menu gm các ch

1. Si thông tin v nhân viên
2. Thêm vào danh sách mt nhân viên mi
3. Loi b mt nhân viên có trong danh sách
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <math.h>

int i;
/* Khai báo cấu trúc */
typedef struct nhanvien
{
char ma[20], ten[20], gt[10];
int namsinh;
}nhanvien;
/* Hàm nhập danh sách nhân viên */
void input(int n,nhanvien nv[])
{
for(i=0;i<n;i++)
{
printf("Ma cua nhan vien thu %d la: ",i+1);
fflush(stdin); gets(nv[i].ma);
printf("Ho ten nhan vien : ");
fflush(stdin); gets(nv[i].ten);
printf("Gioi tinh: ");
fflush(stdin); gets(nv[i].gt);
printf("Nam sinh: ");scanf("%d",&nv[i].namsinh);
}
}

/* Hàm hiển thị danh sách các nhân viên */
void output(int n,nhanvien nv[])
{
printf(" Ma | Ho va ten | Gioi
Tinh | Nam Sinh \n\n");
for(i=0;i<n;i++)
{

printf("%10s|%20s|%10s|%10d\n",nv[i].ma,nv[i].ten,nv[i].gt,nv[
i].namsinh);
}
}
/* Hàm thêm một nhân viên vào trong danh sách */
void Them(int &n,nhanvien nv[])
{
nhanvien t;
printf("Nhap thong tin cua nhan vien muon them:\n");
printf("Ma cua nhan vien la: ");
fflush(stdin); gets(t.ma);
printf("Ho ten nhan vien : ");
fflush(stdin); gets(t.ten);
printf("Gioi tinh: ");
fflush(stdin); gets(t.gt);
printf("Nam sinh: ");scanf("%d",&t.namsinh);
nv[n] = t;
n++;
}
/* hàm sử thông tin của một nhân viên */
void Sua(int &n,nhanvien nv[])
{

char Ma_sua[10];
bool kt = true;
printf("Ma cua nhan vien muon sua: ");
fflush(stdin); gets(Ma_sua);
for (i=0;i<n;i++)
{
if (strcmp(nv[i].ma,Ma_sua)==0)
{
printf("Nhap thong tin can sua: \n");
printf("Nhap Ho ten nhan vien : ");
fflush(stdin); gets(nv[i].ten);
printf("Gioi tinh: ");
fflush(stdin); gets(nv[i].gt);
printf("Nam sinh: ");scanf("%d",&nv[i].namsinh);
kt = false;
break;
}
}
if (kt==true)
{
printf("Khong ton tai nhan vien co ma %s",Ma_sua);
}
else
{
output(n,nv);
}
}
/* Hàm loại bỏ một nhân viên ra khỏi danh sách */
void Xoa(int &n,nhanvien nv[])
{

char Ma_xoa[10];
bool kt = true;
printf("Ma cua nhan vien muon xoa: ");
fflush(stdin); gets(Ma_xoa);
for (i=0;i<n;i++)
{
if (strcmp(nv[i].ma,Ma_xoa)==0)
{
for (int j=i;j<n-1;j++)
{
nv[j]=nv[j+1];
}
n ;
i ;
kt = false;
}
}
if (kt==true)
{
printf("Khong ton tai nhan vien co ma %s",Ma_xoa);
}
else
{
output(n,nv);
}
}
/* Hàm main sử dụng các hàm thành viên */
main()

×