lập trình c++ có lời giải 2

25
41. Viết chương trình tính diện tích và chu vi của hình chữ nhật với chiều dài và chiều rộng được nhập từ bàn phím. #include <iostream.h> #include <stdio.h> #include <math.h> int main(int argc, char *argv[]) { float a,b,s,p; cout<<"nhap so a"<<endl; cin>>a; cout<<"nhap so b"<<endl; cin>>b; s=a*b; p=(a+b)*2; cout<<"dien tich hinh chu nhat= "<<s<<endl; cout<<"chu vi hinh chu nhat= "<<p<<endl; return 0; } 42. Viết chương trình tính diện tích và chu vi hình tròn với bán kính được nhập từ bàn phím. #include <iostream.h>

Upload: minh-ngoc-tran

Post on 02-Jul-2015

7.163 views

Category:

Internet


10 download

TRANSCRIPT

Page 1: Lập trình c++ có lời giải 2

41. Viết chương trình tính diện tích và chu vi của hình chữ nhật với chiều dài và chiều rộng được nhập từ bàn phím.

#include <iostream.h>#include <stdio.h>#include <math.h>int main(int argc, char *argv[]){

float a,b,s,p;cout<<"nhap so a"<<endl;cin>>a;cout<<"nhap so b"<<endl;cin>>b;s=a*b;p=(a+b)*2;cout<<"dien tich hinh chu nhat= "<<s<<endl;cout<<"chu vi hinh chu nhat= "<<p<<endl;return 0;

}

42. Viết chương trình tính diện tích và chu vi hình tròn với bán kính được nhập từ bàn phím.

#include <iostream.h>

Page 2: Lập trình c++ có lời giải 2

#include <stdio.h>

#include <math.h>int main(int argc, char *argv[]){

float r,s,p;cout<<"nhap so r"<<endl;cin>>r;p=r*2*3.14;s=r*r*3.14;cout<<"dien tich hinh tron = "<<s<<endl;cout<<"chu vi hinh tron = "<<p<<endl;return 0;

}

43. Nhập số nguyên dương n (n>0). Liệt kê tất cả các số nguyên tố nhỏ hơn n. #include <iostream.h>#include <stdio.h>#include <math.h>void main(){ int n,dem=0; cout<<"nhap so "<<endl; cin>>n; for (int i=2;i<=n;i++)

Page 3: Lập trình c++ có lời giải 2

{ for (int j=1;j<=i;j++) { if(i%j==0) dem=dem+1; } if(dem==2) cout<<” so nguyen to nho hon ”<<n<<”= ”<< i<<endl; dem=0; }return 0;}

44. Nhập sốnguyên dương n (n>0). Liệt kê n số chính phương đầu tiên.

#include <iostream.h>int main(int argc, char *argv[]){int n,j,i;cout<<"nhap so "<<endl;

Page 4: Lập trình c++ có lời giải 2

cin>>n;for(i=1; i<=n; i++) { j=1;

while(j*j<i) j+=1; if(j*j==i)

cout<<i<<""<<endl; } cout<<endl; return 0;

}

Bài 45: Nhập số nguyên dương n (n>0). Đếm xem có bao nhiêu số hoàn thiện < n.

#include <iostream>

using namespace std;

void Nhap(int &a)

Page 5: Lập trình c++ có lời giải 2

{

cout<<"Nhap so nguyen n : ";

cin>>a;

}

bool KiemTraHT(int n)

{

int tong=0;

for (int i=1;i<n;i++)

if (n%i==0)

tong=tong+i;

if (tong ==n)

return true;

return false;

}

int DemSoHT(int n)

{

int dem=0;

for(int i=1;i<=n;i++)

Page 6: Lập trình c++ có lời giải 2

if(KiemTraHT(i))

dem++;

cout<<dem<<endl;

return dem;

}

int main()

{

int n;

Nhap(n);

cout<<"So hoan thien < n la : "<<endl;

DemSoHT(n);

cout<<endl;

}

46. Nhập số nguyên dương n (0 <= n< 1000) và in ra cách đọc của n.

#include <iostream>using namespace std;void Nhap(int &a){

Page 7: Lập trình c++ có lời giải 2

cout<<"Nhap so nguyen a:";cin>>a;}void DocSo(int n){int tram=n/100;int chuc=n/10%10;int dv=n%10;switch(tram){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(chuc){case 0: if (dv==0){cout<<" ";break;}else{cout<<"Le ";break;}case 1: cout<<"Muoi ";break;case 2: cout<<"Hai Muoi ";break;case 3: cout<<"Ba Muoi ";break;

Page 8: Lập trình c++ có lời giải 2

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(dv){case 5:if (chuc==0){cout<<"Lam ";break;}else{cout<<"Nam ";break;}case 1: cout<<"Mot"<<endl;break;case 2: cout<<"Hai"<<endl;break;case 3: cout<<"Ba"<<endl;break;case 4: cout<<"Bon"<<endl;break;case 6: cout<<"Sau"<<endl;break;case 7: cout<<"Bay"<<endl;break;case 8: cout<<"Tam"<<endl;break;case 9: cout<<"Chin"<<endl;break;}}int main(){int(n);Nhap(n);DocSo(n);

Page 9: Lập trình c++ có lời giải 2

}

47. Viết chương trình tính tiền thuê máy dịch vụInternet và in ra màn hình kết quả. Với dữliệu nhập vào là giờbắt đầu thuê (GBD), giờkết thúc thuê (GKT), số máy thuê (SoMay). - Điều kiện cho dữliệu nhập: 6<=GBD<GKT<=21. Giờ là số nguyên.- Đơn giá: 2500đcho mỗi giờmáy trước 17:30 và 3000đcho mỗi giờ máy sau 17:30.

#include <iostream.h>#include <math.h>int main(int argc, char *argv[]){int gbd,gkt,sotien;do{

cout<<"nhap gbd"<<endl;cin>>gbd;

}while(gbd<6 || gbd>21);do{

cout<<"nhap gio ket thuc"<<endl;

Page 10: Lập trình c++ có lời giải 2

cin>>gkt;}

while(gkt< 11 || gkt>21 || gkt<gbd );//gio bat dau va ket thuc tu 6 gio den 21 gio//if(gbd<=17 && gkt<=17 )sotien=2500*(gkt-gbd);//gio bat dau gio ket thuc sau 17 gio//if(gbd>17 && gkt>17)sotien=3000*(gkt-gbd);//gio vao<=17 gio va ket thuc >17 gio//if(gbd <=17 && gkt >17)sotien=(17-gbd)*2500+(gkt-17)*3000;cout<<"tong so tien= "<<sotien<<endl;return 0;

}

48. Viết chương trình tính tiền lương ngày cho công nhân, cho biết trước giờ vào ca, giờ ra ca của mỗi người. Biết rằng: - Tiền trả cho mỗi giờ trước 12 giờ là 6000đ và sau 12 giờ là 7500đ. - Giờ vào ca sớm nhất là 6 giờ sáng và giờ ca trễ nhất là 18 giờ(Giả sử giờ nhập vào nguyên).

Page 11: Lập trình c++ có lời giải 2

#include <iostream.h>#include <math.h>int main(int argc, char *argv[]){

int n,i,a,ra,vao,sotien;do{

cout<<"nhap vao gio vao "<<endl;cin>>vao;

}while(vao<6 || vao>18);do{

cout<<"nhap vao gio ra "<<endl;cin>>ra;

} while(ra<6 || ra>18 || ra<vao); //gio vao va gio ra tu 6 den 12 gio if(ra<=12 && vao<=12) sotien=6000*( ra - vao ); //gio vao va gio ra sau 12 h if(ra>12 && vao>12) sotien=7500*(ra-vao); //gio vao <=12 va gio ra >12 if(vao<=12 && ra>12) sotien=(12-vao)*6000+(ra-12)*7500; cout<<"so tien phai tra la: "<<sotien<<endl;

return 0;

Page 12: Lập trình c++ có lời giải 2

}

50. Nhập vào 3 sốthực a, b, c và kiểm tra xem chúng có thành lập thành 3 cạnh của một tam giác hay không? Nếu có hãy tính diện tích, chiều dài mỗi đường cao của tam giác và in kết quả ra màn hình. - Công thức tính diện tích s = sqrt(p*(p-a)*(p-b)*(p-c) ) - Công thức tính các đường cao: ha = 2s/a, hb=2s/b, hc=2s/c. (Với p là nữa chu vi của tam giác).

#include <iostream.h>

int main(int argc, char *argv[])

{

int a,b,c;

float p,s,ha,hb,hc;

cout<<"nhap so "<<endl;

cin>>a;

cout<<"nhap so "<<endl;

Page 13: Lập trình c++ có lời giải 2

cin>>b;

cout<<"nhap so "<<endl;

cin>>c;

if(a=b=c)

cout<<"la tam giac"<<endl;

else

cout<<"khong phai la tam giac"<<endl;

p=(a+b+c)/2;

s=sqrt(p*(p-a)*(p-b)*(p-c));

ha=(2*s)/a;

hb=(2*s)/b;

hc=(2*s)/c;

cout<<"dien tich tam giac = "<<s<<endl;

cout<<"chieu cao canh a ha="<<ha<<endl;

cout<<"chieu cao canh b hb="<<hb<<endl;

cout<<"chieu cao canh c hb="<<hc<<endl;

return 0;

}

Page 14: Lập trình c++ có lời giải 2

51. Nhập vào 6 sốthực a, b, c, d, e, f . Giải hệ phương trình sau :

#include <iostream.h>#include <math.h>int main(int argc, char *argv[]){

float a,b,c,d,e,f;float x,y;float dx,dy,dd;cout<<"nhap so a"<<endl;cin>>a;cout<<"nhap so b"<<endl;cin>>b;cout<<"nhap so c"<<endl;cin>>c;cout<<"nhap so d"<<endl;cin>>d;

Page 15: Lập trình c++ có lời giải 2

cout<<"nhap so e"<<endl;cin>>e;cout<<"nhap so f"<<endl;cin>>f;dd=a*e-d*b;dx=c*e-b*f;dy=a*f-d*c;x=dx/dd;y=dy/dd;if(dd==0){

if(dx==0 && dy==0) cout<<"phuong trinh vo so nghiem"<<endl; else cout<<"phuong trinh vo nghiem"<<endl;}else { cout<<"phuong trinh co nghiem La: "<<endl;

cout<<"x= "<<x<<endl; cout<<"y= "<<y<<endl;

} return 0;

}

Page 16: Lập trình c++ có lời giải 2

52. Viết chương trình nhập 2 số nguyên dương a, b. Tìm USCLN và BSCNNcủa hai số nguyên đó.

#include <iostream.h>int main(int argc, char *argv[]){

int a,b,c,d,ucln,bcnn;cout<<"nhap so a"<<endl;cin>>a;cout<<"nhap so b"<<endl;cin>>b;c=a;d=b;while(a!=b) { if(a>b)

Page 17: Lập trình c++ có lời giải 2

a-=b; else

b-=a; ucln=a;

} cout<<"uoc chung lon nhat= "<<ucln<<endl; bcnn=(c*d)/ucln; cout<<"boi chung nho nhat= "<<bcnn<<endl;return 0;

}

53. Viết chương trình tính tổng nghịch đảo của n giai thừa.

#include <iostream.h>#include <math.h>int main(int argc, char *argv[]){

int n;float tong,gt;cout<<"nhap so "<<endl;cin>>n;tong=0;

Page 18: Lập trình c++ có lời giải 2

gt=1;for(int i=1; i<=n; i++) { gt=gt*i; tong=tong+1/gt; } cout<<"tong nghich dao giai thua= "<<tong<<endl;return 0;

}

54. Cho 2 số nguyên a, b. Viết hàm hoán vị giá trị 2 số trên.

#include <iostream.h>int main(int argc, char *argv[]){

int a,b,max;cout<<"nhap so "<<endl;cin>>a;cout<<"nhap so"<<endl;cin>>b;if(a>b){

max=a;

Page 19: Lập trình c++ có lời giải 2

a=b;b=max;

}else{

max=b;b=a;a=max;

}cout<<"hoan vi cua hai so la "<<a<<b<<endl;return 0;

}

55. (*)Viết chương trình nhập số nguyên dương n gồm 5 chữ số, kiểm tra xem các chữ số n có phải là số đối xứng hay không. Ví dụ: Đối xứng: 13531 Không đối xứng: 13921

#include <iostream.h>int main(int argc, char *argv[]){

long int n,so,sodao=0;cout<<"nhap so "<<endl;cin>>n;

Page 20: Lập trình c++ có lời giải 2

so=n;while(so!=0){

sodao=sodao*10+so%10;so=so/10;

}if(sodao==n)cout<<"la so doi xung"<<endl;elsecout<<"khong la so doi xung"<<endl;return 0;

}

57. Viết chương trình nhập số nguyên dương n gồm k chữ số, (0<=k<=5) đếm xem n có bao nhiêu chữ số là số nguyên tố.

#include <iostream.h>int main(int argc, char *argv[]){

int i,a,n,dem,demt=0;cout<<"nhap so"<<endl;cin>>n;do{

Page 21: Lập trình c++ có lời giải 2

a=n%10;n=n/10;dem=0;for(i=1; i<=a; i++)if(a%i==0)dem++;if(dem==2)demt++;

}while(n!=0);cout<<"demsont= "<<demt<<endl;

return 0;}

58.

#include <iostream.h>int tonguocso(int n);int main(int argc, char *argv[]){

int n;cout<<"tinh tong cac uoc so"<<endl;cout<<"nhap so can tinh "<<endl;cin>>n;while(n<0 || n>99999) { cout<<"so N co toi da 5 chu so0"<<endl; cout<<"Nhap lai so n can kiem tra "<<endl;

Page 22: Lập trình c++ có lời giải 2

cin>>n; } cout<<"so "<<n<<" co tong cac uoc so "<<tonguocso(n)<<endl;

}int tonguocso(int n){

int tong=0;for(int i=1; i<=n; i++){

if(n%i==0) tong+=i;}return tong;

}

60. Viết chương trình nhập số nguyên dương n gồm k chữ số (0<=k<=5) , kiểm tra xem các chữ số của n có toàn lẻ hay toàn chẵn không.?

#include <iostream.h>#include <math.h>void nhap(int M[5], int &n);int toanchan(int M[5], int n);int main(int argc, char *argv[]){ int M[5]; int n;

Page 23: Lập trình c++ có lời giải 2

nhap(M,n); toanchan(M,n); if(toanchan(M,n)) cout<<"mang toan chan"<<endl; else cout<<"mang toan le"<<endl; return 0;}void nhap(int M[5], int &n){

cout<<"nhap mang"<<endl;cin>>n;for(int i=0; i<n; i++) { cout<<"nhap gia tri phan tu mang "<<i+1<<"= "; cin>>M[i]; }

}int toanchan(int M[5], int n){

for(int i=0; i<=n; i++){

if(M[i]%2==0)return 1;return 0;

}}

Page 24: Lập trình c++ có lời giải 2

61. (*)Viết chương trình nhập số nguyên dương n gồm k chữ số ,(0<= k < =5) sắp xếp các chữ sốcủa n theo thứ tự tăng dần. Ví dụ: Nhập n=1536 Kết quả sau khi sắp xếp: 1356.

#include <iostream.h>#include <conio.h>int main(){int a[5],so,n=0,i,j;

cout<<"Nhap 1 so toi da 5 chu so: ";cin>>so;

do{a[n]=so % 10;so=so/10;n++;}while(so!=0);

Page 25: Lập trình c++ có lời giải 2

//sap xepfor(i=0; i<n-1;i++)for(j=i+1;j<n;j++)if(a[j]<a[i]){a[i]=a[i]+a[j];a[j]=a[i]-a[j];a[i]=a[i]-a[j];}so=0;for(i=0;i<n;i++)so=so*10+a[i];//xuat ket quacout<<"So duoc viet lai theo thu tu tang:"<<endl;cout<<so<<endl;

}