Tải bản đầy đủ (.doc) (15 trang)

Tổng hợp bài tập C++ cho người mới bắt đầu

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 (47.23 KB, 15 trang )

Chương trình tính ước số chung lớn nhất và bội số chung nhỏ nhất
#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("nhap vao hai so a,b : ");
scanf("%u %u", &n, &m);
printf("USCLN cua %u va %u la %u\n",n,m,USCLN(n,m));
printf("BSCNN cua %u va %u la %u\n",n,m,BSCNN(n,m));
getch();
}
Chương trình xét một số có phải là số nguyên tố hay không
#include "stdio.h"
int is_nt(int n)


{
int dem = 2;
for(int i=2;i<=n;i++)
{
if(n%i==0)
dem++;
if(dem>3)
break;
}
if(dem<=2)
return 1;
else
return 0;
}
void main()
{
int n;
printf("nhap vao mot so nguyen duong n : ");
scanf("%i", &n);
if(is_nt(n))
printf("%i la so nguyen to\n",n);
else
printf("%i khong la so nguyen to\n",n);
}
Chửụng trỡnh saộp xeỏp maỷng taờng dan
#include<stdio.h>
#include<conio.h>
void nhapmang(int a[], int n)
{
for(int i=0;i<n;i++)

{
printf("nhap thanh phan a[%i]= ",i);
scanf("%i", &a[i]);
}
}
void xuatmang(int a[], int n)
{
for(int i=0;i<n;i++)
printf("%i\t", a[i]);
}
void hoanvi(int &x, int &y)
{
int tam;
tam=x;
x=y;
y=tam;
}
void sapxep(int a[], int n)
{
for(int i=0;i<n;i++)
for(int j=i+1;j<n;j++)
if(a[i]>a[j])
hoanvi(a[i],a[j]);
}
int tongmang(int a[], int n)
{
int s=0;
for(int i=0;i<n;i++)
s+=a[i];
return s;

}
void main()
{
int a[100];
int n;
printf("nhap so phan tu ");
scanf("%i", &n);
nhapmang(a,n);
xuatmang(a,n);
printf("\n");
sapxep(a,n);
printf("mang sap xep tang dan \n");
xuatmang(a,n);
printf("\n");
printf("tong cac phan tu trong mang : %i",tongmang(a,n));
}
Chương trình tính tổng hai phân số sau đó rút gọn phân số
#include "stdio.h"
#include "math.h"
int USCLN(int tuso, int mauso)
{
int a=abs(tuso);
int b=abs(mauso);
while(a-b!=0)
{
if(a>b)
a-=b;
else
b-=a;
}

if(a==b)
return a;
}
void rutgon(int &tuso, int &mauso)
{
int uocso=USCLN(tuso, mauso);
tuso=tuso/uocso;
mauso=mauso/uocso;
}
void main()
{
int ts,ms;
int ts1, ts2, ms1, ms2;
printf("nhap phan so thu nhat \n");
printf("nhap tu so= \n");
scanf("%i",&ts1);
printf("nhap mau so= \n");
scanf("%i", &ms1);
printf("nhap phan so thu hai \n");
printf("nhap tu so= \n");
scanf("%i",&ts2);
printf("nhap mau so= \n");
scanf("%i", &ms2);
ts=ts1*ms2+ts2*ms1;
ms=ms1*ms2;
printf("phan so tong la %i/%i\n",ts, ms);
printf("phan so rut gon: ");
rutgon(ts,ms);
printf("%i/%i\n",ts,ms);
}

Viết chương trình nhập số nguyên n, thực hiện :
a. Nhập n số nguyên vào dãy
b. Xuất dãy vừa nhập ra màn hình
c. Đếm xem dãy vừa nhập có bao nhiêu số nguyên tố, in các số nguyên tố có trong dãy
d. Nhập số nguyên X, tìm vò trí xuất hiện của X trong dãy vừa nhập
e. Nhập một số nguyên Y, xóa giá trò Y ra khỏi dãy
f. Nhập số nguyên Z, tìm vò trí xuất hiện của số trên dãy có giá trò gần Z nhất
#include <stdio.h>
#include <math.h>
void nhapmang(int a[], int n)
{
for(int i=0;i<n;i++)
{
printf("nhap thanh phan a[%i] = ",i);
scanf("%i", &a[i]);
}
}
void xuatmang(int a[], int n)
{
for(int i=0;i<n;i++)
printf("%i\t",a[i]);
}
//kiem tra so nguyen to
int is_nt(int n)
{
int dem=2;
int i=2;
while(dem==2 && i<n)
{
if(n%i==0)

dem++;
i++;
}
if(dem==2)
return 1;
else
return 0;
}
//in cac so nguyen to co trong mang
void in_nt(int a[], int n)
{
for(int i=0;i<n;i++)
if(is_nt(a[i])==1)
printf("%i la so nguyen to\n",a[i]);
}
// tim vi tri cua X tren mang
void timX(int a[], int n, int X)
{
for(int i=0;i<n;i++)
if(a[i]==X)
printf("vi tri %i gia tri %i\n",i,a[i]);
}
// xoa gia tri Y ra khoi day
void xoaY(int a[], int &n, int Y)
{
for(int i=0;i<n;i++)
if(i==n-1 && a[i]==Y)
{
n ;
break;

}
else // Tim vi tri Y muon xoa
if(a[i]==Y)
{
for(int j=i;j<n;j++)
a[j]=a[j+1];
n ;
i ;
}
}
int nearZ(int a[], int n, int Z)
{
int min=a[0]-Z;
int cs=0;
for(int i=1;i<n;i++)
{
if(abs(a[i]-Z)<abs(min))
{
min = a[i]-Z;
cs=i;
}
}
return cs;
}
void main()
{
int a[15];
int n;
printf("nhap so phan tu ");
scanf("%i", &n);

nhapmang(a,n);
printf("mang cua ban la : \n");
xuatmang(a,n);
printf("\n");
in_nt(a,n);
int X;
printf("nhap gia tri X can tim ");
scanf("%i", &X);
timX(a,n,X);
int Y;
printf("nhap gia tri Y can xoa ");
scanf("%i", &Y);
xoaY(a,n,Y);
printf("mang sau khi da xoa :\n");
xuatmang(a,n);
printf("\n");
int Z;
printf("nhap Z = ");
scanf("%i", &Z);
printf("so gan voi Z nhat o vi tri %i\n",nearZ(a,n,Z));
}
Viết chương trình nhập số nguyên n, thực hiện :
a. Nhập n số nguyên vào dãy
b. Xuất dãy vừa nhập ra màn hình
c. Kiểm tra dãy vừa nhập co tăng dần hay không
d. Nếu dãy không tăng dần, hãy sắp xếp lại và xuất ra màn hình
e. Nhập số nguyên X, chèn X vào dãy đang có sao cho vẫn đảm bảo tính tăng dần
#include<stdio.h>
#include<math.h>
void nhapmang(int a[],int n)

{
for(int i=0;i<n;i++)
{
printf("nhap thanh phan a[%i] = ",i);
scanf("%i", &a[i]);
}
}
void xuatmang(int a[], int n)
{
for(int i=0;i<n;i++)
printf("%i\t",a[i]);
}
//kiem tra day tang dan
int daytang(int a[], int n)
{
for(int i=0;i<n-1;i++)
if(a[i]>a[i+1])
return 0;
return 1;
}
void sapxep(int a[], int n)
{
for(int i=0; i<n-1;i++)
for(int j=i+1;j<n;j++)
if(a[i]>a[j])
{
int tam=a[i];
a[i]=a[j];
a[j]=tam;
}

}
//Chen them phan tu vao mang van dam bao tinh tang dan
void chenX(int a[], int &n, int X)
{
n++;
if(a[n-2]<X)
a[n-1]=X;
else
{ //Tim vi tri can chen X
for(int i=0; i<n-1; i++)
if(a[i]>X )
{
for(int j=n-1;j>i;j )
a[j]=a[j-1];
a[j]=X;
break;
}
}
}
void main()
{
int a[100];
int n;
int X;
printf("nhap so phan tu ");
scanf("%i",&n);
nhapmang(a,n);
printf("\n");
xuatmang(a,n);
int kq = daytang(a,n);

if(kq==1)
printf("day tang\n");
else
printf("day khong tang\n");
printf("\n");
sapxep(a,n);
xuatmang(a,n);
printf("\n");
printf("\n");
printf("nhap gia tri X can chen ");
scanf("%i",&X);
chenX(a,n,X);
printf("\n");
xuatmang(a,n);
}
Viết chương trình thực hiện các yêu cầu :
a. Nhập một số nguyên dương n co 4 chữ số, nếu nhập sai phải nhập lại.
b. Tìm chữ số lớn nhất, chữ số nhỏ nhất có trong số n.
c. Cho biết vò trí xuất hiện của các số đó ( hàng nghìn, hàng trăm, hàng chục, hàng đơn
vò)
VD : n = 3971
 Max = 9, max ở hàng trăm.
 Min = 1, min ở hàng đơn vò.
#include <stdio.h>
#include <conio.h>
#include <string.h>
void docsomax(int n)
{
int demmax = 0;
int max = 0;

int du;
while (n != 0)
{
du = n % 10;
if (du > max)
{
max = du;
demmax++;
}
n = n / 10;
}
printf("so lon nhat la %i\n",max);
switch(demmax)
{
case 1:
{
printf("\ngia tri lon nhat o hang don vi\n");
break;
}
case 2:
{
printf("\ngia tri lon nhat o hang chuc\n");
break;
}
case 3:
{
printf("\ngia tri lon nhat o hang tram\n");
break;
}
case 4:

{
printf("\ngia tri lon nhat o hang nghin\n");
break;
}
}
}
void docsomin(int n)
{
int demmin = 1;
int min = 9999;
int du;
while (n != 0)
{
du = n % 10;
if (du < min)
{
min = du;
demmin++;
}
n = n / 10;
}
printf("so nho nhat la %i\n",min);
switch(demmin)
{
case 1:
{
printf("\ngia tri nho nhat o hang don vi\n");
break;
}
case 2:

{
printf("\ngia tri nho nhat o hang chuc\n");
break;
}
case 3:
{
printf("\ngia tri nho nhat o hang tram\n");
break;
}
case 4:
{
printf("\ngia tri nho nhat o hang nghin\n");
break;
}
}
}
void main()
{
int n;
do
{
printf("Nhap vao mot so (4 chu so): ");
scanf("%i", &n);
}
while(n<=0||n>9999);
docsomax(n);
docsomin(n);
}
Baứi taọp toồng hụùp
#include <stdio.h>

#include <math.h>
void nhapmang(int a[], int n)
{
for(int i=0;i<n;i++)
{
printf("nhap thanh phan a[%i] = ",i);
scanf("%i",&a[i]);
}
}
void xuatmang(int a[], int n)
{
for(int i=0;i<n;i++)
printf("%i\t",a[i]);
}
int is_nt(int n)
{
int dem=2;
int i=2;
while(dem==2 && i<n)
{
if(n%i==0)
dem++;
i++;
}
if(dem==2)
return 1;
else
return 0;
}
void sapxep(int a[], int n)

{
for(int i=0;i<n-1;i++)
for(int j=i+1;j<n;j++)
if(a[i]>a[j] && is_nt(a[i]) && is_nt(a[j]))
{
int tam=a[i];
a[i]=a[j];
a[j]=tam;
}
}
void in_nt(int a[], int n)
{
for(int i=0;i<n;i++)
if(is_nt(a[i])==1)
printf("%i la so nguyen to \n", a[i]);
}
void xoaY(int a[], int &n, int Y)
{
for(int i=0;i<n;i++)
if(i==n-1 && a[i]==Y)
{
n ;
break;
}
else
if(a[i]==Y)
{
for(int j=i;j<n;j++)
a[j]=a[j+1];
n ;

i ;
}
}
void chenX(int a[], int &n, int X)
{
n++;
if(a[n-2]<X)
a[n-1]=X;
else
{
for(int i=0;i<n;i++)
if(a[i]>X)
{
for(int j=n-1;j>i;j )
a[j]=a[j-1];
a[j]=X;
break;
}
}
}
int nearZ(int a[], int n, int Z)
{
int min=a[0]-Z;
int pt=a[0];
for(int i=1;i<n;i++)
if(abs(a[i]-Z)<abs(min))
{
min=a[i]-Z;
pt=a[i];
}

return pt;
}
void main()
{
int a[10];
int n;
printf("nhap n ");
scanf("%i", &n);
nhapmang(a,n);
sapxep(a,n);
xuatmang(a,n);
int Y;
printf("nhap Y muon xoa ");
scanf("%i", &Y);
xoaY(a,n,Y);
printf("mang sau khi da xoa %i : \n",Y);
xuatmang(a,n);
printf("\n");
in_nt(a,n);
int X;
printf("nhap X can chen ");
scanf("%i", &X);
chenX(a,n,X);
xuatmang(a,n);
int Z;
printf("nhap Z : ");
scanf("%i", &Z);
printf("phan tu gan %i nhat la %i",Z, nearZ(a,n,Z));
}

×