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 
      
    
 Mới đầu ta cũng nghĩ xài 
 Viết vậy ko cần sợ mod 2 lần, compiler nó đọc sẽ tự hiểu mà optimize dùm mình chỉ mod 1 lần thôi.
    83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?