Em có 1 bài toán của c++ như thế này ạ
Viết một chương trình chuyển kí pháp dạng 24 giờ thành dạng 12 giờ. Ví dụ, nó có thể chuyển
14:25 thành 2:25 PM. Đầu vào được cho gồm hai số nguyên. Chương trình nên có ít nhất ba
hàm: Một hàm cho việc nhập dữ liệu, một hàm cho việc chuyển đổi và một hàm cho việc in dữ
liệu. Bản ghi thông tin A.M/P.M là giá trị kiểu char, ‘A’ cho A.M và ‘P’ cho P.M. Vì vậy hàm
chuyển đổi sẽ có một tham chiếu có kiểu char để ghi lại A.M hoặc P.M (Hàm này sẽ có thêm
những tham số khác nếu cần). Nên có một vòng lặp để giúp người dùng lặp đi lặp lại quá trình
tính toán này với giá trị nhập vào mới cho đến khi người dùng nói rằng họ muốn dừng chương
trình.
#include <iostream>
using namespace std;
int main()
{
int gio,phut,giay,t;
char A[]="A.M",P[]="P.M";
cout<<"Nhap thoi gian (dang 24h)"<<endl<<"Nhap gio : ";
cin>>gio;
cout<<"Nhap phut : ";
cin>>phut;
cout<<"Nhap giay : ";
cin>>giay;
if ((1 <= gio <= 11 ) && (0 <= phut <= 60) && (0 <= giay <= 60)) {
if (gio < 10) {
if ((phut >= 10) && (giay >= 10)) {
cout<<"Thoi gian la (dang 12h) : 0"<<gio <<"."<<phut<<"."<<giay<<" "<< A <<endl;
}
else if ((phut < 10) && (giay >= 10)) {
cout<<"Thoi gian la (dang 12h) : 0"<<gio <<".0"<<phut<<"."<<giay<<" "<< A <<endl;
}
else if ((phut < 10) && (giay < 10)) {
cout<<"Thoi gian la (dang 12h) : 0"<<gio <<".0"<<phut<<".0"<<giay<<" "<< A <<endl;
}
else {
cout<<"Thoi gian la (dang 12h) : 0"<<gio <<"."<<phut<<".0"<<giay<<" "<< A <<endl;
}
}
else {
if ((phut >= 10) && (giay >= 10)) {
cout<<"Thoi gian la (dang 12h) : "<<gio <<"."<<phut<<"."<<giay<<" "<< P <<endl;
}
else if ((phut < 10) && (giay >= 10)) {
cout<<"Thoi gian la (dang 12h) : "<<gio <<".0"<<phut<<"."<<giay<<" "<< P <<endl;
}
else if ((phut < 10) && (giay < 10)) {
cout<<"Thoi gian la (dang 12h) : "<<gio <<".0"<<phut<<".0"<<giay<<" "<< P <<endl;
}
else {
cout<<"Thoi gian la (dang 12h) : "<<gio <<"."<<phut<<".0"<<giay<<" "<< P <<endl;
}
}
}
else if ((gio == 24) && (0 <= phut <= 60) && (0 <= giay <= 60)) || ((gio == 0) && (0 <= phut <= 60) && (0 <= giay <= 60))) {
if ((phut >= 10) && (giay >= 10)) {
cout<<"Thoi gian la (dang 12h) : 12."<<phut<<"."<<giay<<" "<< A <<endl;
}
else if ((phut < 10) && (giay >= 10)) {
cout<<"Thoi gian la (dang 12h) : 12."<<phut<<"."<<giay<<" "<< A <<endl;
}
else if ((phut < 10) && (giay < 10)) {
cout<<"Thoi gian la (dang 12h) : 12."<<phut<<".0"<<giay<<" "<< A <<endl;
}
else {
cout<<"Thoi gian la (dang 12h) : 12."<<phut<<".0"<<giay<<" "<< A <<endl;
}
}
else if ((13 <= gio <= 23) && (0 <= phut <= 60) && (0 <= giay <= 60)) {
if ((phut >= 10) && (giay >= 10)) {
cout<<"Thoi gian la (dang 12h) : "<<gio-12 <<"."<<phut<<"."<<giay<<" "<< P <<endl;
}
else if ((phut < 10) && (giay >= 10)) {
cout<<"Thoi gian la (dang 12h) : "<<gio-12 <<".0"<<phut<<"."<<giay<<" "<< P <<endl;
}
else if ((phut < 10) && (giay < 10)) {
cout<<"Thoi gian la (dang 12h) : "<<gio-12 <<".0"<<phut<<".0"<<giay<<" "<< P <<endl;
}
else {
cout<<"Thoi gian la (dang 12h) : "<<gio-12 <<"."<<phut<<".0"<<giay<<" "<< P <<endl;
}
}
else if ((gio == 12 ) && (0 <= phut <= 60) && (0 <= giay <= 60)) {
if ((phut >= 10) && (giay >= 10)) {
cout<<"Thoi gian la (dang 12h) : "<<gio <<"."<<phut<<"."<<giay<<" "<< P <<endl;
}
else if ((phut < 10) && (giay >= 10)) {
cout<<"Thoi gian la (dang 12h) : "<<gio <<".0"<<phut<<"."<<giay<<" "<< P <<endl;
}
else if ((phut < 10) && (giay < 10)) {
cout<<"Thoi gian la (dang 12h) : "<<gio <<".0"<<phut<<".0"<<giay<<" "<< P <<endl;
}
else {
cout<<"Thoi gian la (dang 12h) : "<<gio <<"."<<phut<<".0"<<giay<<" "<< P <<endl;
}
}
else {
cout<<"Ban da nhap sai !! Xin thu lai..";
}
system("pause");
return 0;
}
Khi em nhập thời gian là : 24 5 5
thì kết quả nó lại ra là : 24.05.05 PM trong khi em nghĩ nó sẽ hiện ra là: 12.05.05 AM
hoặc 0 1 1
thì kết quả là : 00.01.01 PM,em nghĩ là sẽ ra: 12.01.01 AM
Mọi người có thể chỉ ra cho e lỗi sai được không ạ? em cảm ơn