Chủ đề: Giúp đỡ về bài tập c++
-
25-08-2014, 02:19 PM #1
Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Giúp đỡ về bài tập c++
em năm nay mới vào đh, giờ đang tự học c++ ở nhà [IMG]images/smilies/clap_grin.gif[/IMG]
em có làm mấy bài tập nhưng không biết đúng hay không, các bác xem giúp em với ! [IMG]images/smilies/2.gif[/IMG] ! nếu có sai sót chỗ nào chỉ em để em khắc phục a! tks các bác nhiều [IMG]images/smilies/clap_grin.gif[/IMG]
bài 1: Viết chương trình tính tiền cước TAXI.
Biết rằng: - KM đầu tiên là 5000đ.
- 200m tiếp theo là 1000đ.
- Nếu lớn hơn 30km thì mỗi km thêm sẽ là 3000đ.
Hãy nhập số km sau đó in ra số tiền phải trả.
BÀI EM LÀM:
Mã:int km=0; int tien=5000; cout<< "nhap so km" << endl; cin >> km; int m = km * 1000; if(m<1200){ cout << "so tien phai tra la" << tien << endl; } if(1200<=m && m<= 30000){ int a = m /200; int n = a-5; cout << "so tien phai tra la" << tien +1000 *n << endl; } if(m>30000){ int b = m - 30000; int c = b /1000; cout << "so tien phai tra la " << tien +1000 *145 +3000 *c << endl; }
Nhập vào 3 số nguyên dương a, b, c. Kiểm tra xem 3 số đó có lập thành tam giác không? Nếu có hãy cho biết tam giác đó thuộc loại nào? (Cân, vuông, đều, …)
BÀI EM LÀM:
Mã:int a = 0; int b = 0; int c = 0; cout << "nhap vao 3 canh tam giac " << endl; cin >> a; cin >> b; cin >> c; if (a > 0 && b > 0 && c > 0){ if (a + b > c && b + c > a && a + c > b){ while (a == b || a == c || b == c) { cout << "tam giac can" << endl; break; } while (a == b == c){ cout << "tam giac deu" << endl; break; } while (a*a + b*b == c*c || a*a + c*c == b*b || b*b + c*c == a*a){ cout << "tam giac vuong" << endl; break; } while (a == !b ==! c){ cout << "tam giac thuong" << endl; break; } } else{ cout << "khong co tam giac" << endl; } } else{ cout << "khong co tam giac" << endl; }
Còn nữa nhưng em chưa làm xong hết, có gì em sẽ upl lên sau! [IMG]images/smilies/2.gif[/IMG]View more random threads:
- bài tập lập trình c, cấu trúc dữ liệu fuzzy
- Xuất dãy con tăng dài nhất
- giup giai bai tap c
- Tìm dòng dài nhất file C++
- Chuyên cung cấp sản phẩm Nguyên liệu TAGS và Phân bón hữu cơ
- khắc phục lỗi 0xC0000005 Access Violation. Xin hướng dẫn
- code rắn săn mồi
- Nhờ tìm lỗi và test code C (chuỗi)
- tính tổng 2 ma trận
- Không dùm đệ qui,không dùm mảng tạm
-
25-08-2014, 03:55 PM #2
Junior Member
- Ngày tham gia
- Sep 2015
- Đang ở
- Số 60 Thái Hà, Đống Đa, Hà Nội
- Bài viết
- 0
em bị lỗi gì @@ [IMG]images/smilies/dont_know.gif[/IMG]
-
25-08-2014, 05:01 PM #3
Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Gửi bởi kusoipro
-
25-08-2014, 06:41 PM #4
Administrator
- Ngày tham gia
- Feb 2014
- Bài viết
- 0
Nếu lớn hơn 30km thì mỗi km thêm sẽ là 3000đ. Ví dụ 30km đầu tiên hết 150k thì 31km là 153k, 32km là 156k, 33km là 159k hay như nào bạn. Ý đồ đầu bài có phải như này không???
- - - Nội dung đã được cập nhật ngày 25-08-2014 lúc 10:46 PM - - -
Theo mình thì đề bài trên có thể gây hiểu lầm cho người làm và giá taxi sẽ rất đắt. Còn những km từ km 30 trở đi sẽ không tính đc
200m tiếp theo cộng 1000đ, thì từ 1km đến 2km chia thành 5 đoạn 200, vậy thì ta có: Tiền 2km đầu tiên = 5000+ (200*1000 + 200*2000 + 200*3000 + 200*4000 + 200*5000)
Theo mình thì đầu bài nên là:
- KM đầu tiên là 5000đ.
- Cứ 200m tiếp theo là cộng thêm 1000đ vào tổng tiền trước đó
- Nếu lớn hơn 30km thì mỗi km thêm sẽ là 3000đ vào tổng tiền trước đó.
Hãy nhập số km sau đó in ra số tiền phải trả.
- - - Nội dung đã được cập nhật ngày 25-08-2014 lúc 10:49 PM - - -
Đây là bài mình làm, mọi người góp ý cho
---------------------------------------
#include<iostream>
#include<math.h>
using namespace std;
int main()
{
int S=0,t1=5000,t2,t3;
float km;
do
{
cout<<"Nhap so km = ";// m la so met
cin>>km;
}while(km<1);
if(km<1.2)
{
cout<<"So tien phai tra la "<<t1+(km-1)*5000<<endl;
}
if(km>=1.2 && km <=30)
{
t2 = t1+(km-1)*5000;
cout<<"So tien phai tra la "<< t2 <<endl;
//200 = 1000
//1000 = 5000, vay la 5000/1km
}
if(km>30)
{ t3 = t1+29*5000+(km-30)*3000;
cout<<"So tien phai tra la "<< t3 <<endl;
}
return 0;
}
- - - Nội dung đã được cập nhật ngày 25-08-2014 lúc 11:41 PM - - -
-
26-08-2014, 01:05 PM #5
Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
em cảm ơn mấy anh a !
em mới làm bài này: Viết chương trình nhập vào số nguyên dương n. Kiểm tra xem n có phải là số chính phương hay không? (số chính phương là số khi lấy căn bặc 2 có kết quả là nguyên).
BÀI EM LÀM :
Mã:int i = 1; int n = 0; do { cout << "nhap so nguyen duong n " << endl; cin >> n; } while (n<0); for (i = 1; i <= n; i++){ if (i*i == n){ cout << "n la so chinh phuong" << endl; break; } else{ cout << "n khong phai la so chinh phuong" << endl; } }
-
26-08-2014, 02:27 PM #6
Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Sao switch đc [IMG]images/smilies/biggrin.png[/IMG]
p/s: Với lại đi dưới 1km cũng có thể xảy ra, dưới 0 mới error.
-
26-08-2014, 03:47 PM #7
Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
^ Đúng ra là phải bắt đầu bằng câu:
int x=sqrt(n);
chứ.
-
26-08-2014, 04:57 PM #8
Banned
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Cái này dễ mà bạn
Mã:bool bSqrt=false;for (i = 1; i <= n; i++)if (i*i == n){ bSqrt = true; break;}if(bSqrt) cout << "n la so chinh phuong" << endl;else cout << "n khong phai la so chinh phuong" << endl;
-
26-08-2014, 06:33 PM #9
Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Gửi bởi huudien1993
tks anh, để em sửa lại bài này [IMG]images/smilies/2.gif[/IMG]
-
26-08-2014, 06:36 PM #10
Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Chắc chắn là nếu đồng hồ tính khoảng cách chỉ 1.1 km thì bạn phải trả số tiền là : 5000 + 1000 = 6000 chứ không phải chỉ là 5000.
Tương tự nếu đồng hồ chỉ 30.1 km thì số tiền bạn phải trả là : 5000 + 29*5000 + 3000 = 5000+145000+3000 = 153000 chứ không phải là 150000.
Lắt léo ở đây là chỉ cần bước qua ranh giới 1mét thôi là bạn phải tính luôn cho nguyên khối ( bạn còn nhớ cách tính tiền điện thoại hồi xưa chứ ).
Mình đưa ra một hướng như sau :
Mã:#include<iostream>#include<math.h>using namespace std;int main(){ float km; int met,block; int tien = 5000; // Khởi tạo tiền phải trả ở nấc ít nhất do { cout<<"Nhap so km = "; cin>>km; } while(km<=0); // Chỉ tính tiền khi Taxi có lăn bánh if(km > 30) // Nếu đã đi trên 30Km { met = (int)((km-30)*1000); block = met/1000 + ( (met%1000) ? 1:0 ); tien += (29*5000 + block*3000); } else if(km > 1) // Nếu đã đi trên 1Km tới 30KM { met = (int)((km-1)*1000); block = met/200 + ( (met%200) ? 1:0 ); tien += block*1000; } cout<<"So tien phai tra la "<< tien <<endl; return 0;}
khi đề cập đến đội hình MU, không thể ko nói tới một trong các câu lạc bộ bóng đá huyền thoại và với tầm ảnh hưởng nhất trong lịch sử của môn thể thao vua. Với hơn 1 thế kỷ còn đó và phát triển,...
Đội hình MU - Manchester United:...