Code xác định ngày tháng sớm nhất bị sai

Giúp em với!!
đề là Viết chương trình cho phép người dùng nhập vào bộ ngày tháng năm. người dùng nhập 0 0 0 để kết thúc.Xác định ngày tháng năm sớm nhất theo lịch.
Em code đúng được cách kiểm tra xem ngày tháng nhập vào có hợp lệ hay không thôi… còn lại em không biết sai chỗ nào nữa… sửa giúp em với ạ

//Khai bao thu vien
#include<iostream>
#include<conio.h>
#include<cmath>
using  namespace std;

//Chuong trinh chinh
void main()
{
	//Khai bao bien
	int iNgay, iThang, iNam, iNgaySomNhat , iThangSomNhat , iNamSomNhat , iDem = 0;
	bool bFlag = false;

	//Nhap du lieu
	do
	{
		cout << "Nhap vao 3 so nguyen tuong ung voi Ngay, Thang va Nam: ";
		cin >> iNgay >> iThang >> iNam;

		//Xu li  gia tri
		//Kiem tra Ngay, Thang, Nam nhap vao co hop le hay khong
		if (iNam > 0)
		{
			switch (iThang)
			{
			case 1:
			case 3:
			case 5:
			case 7:
			case 8:
			case 10:
			case 12:
				if (iNgay >= 1 && iNgay <= 31)
					bFlag = true;
				break;
			case 4:
			case 6:
			case 9:
			case 11:
				if (iNgay >= 1 && iNgay <= 30)
					bFlag = true;
				break;
			case 2:
				if ((iNam % 4 == 0 && iNam % 100 != 0) || (iNam % 400 == 0))
				{
					if (iNgay >= 1 && iNgay <= 29)
						bFlag = true;
				}
				else
				if (iNgay >= 1 && iNgay <= 28)
					bFlag = true;
				break;
			default:
				bFlag = false;
			}
		}
		else
			bFlag = false;
		if (bFlag == true)
		{
			iDem++;
			cout << "Ngay, Thang, Nam ban nhap hop le!" << endl;
		}
		else
			cout << "Ngay, Thang, Nam ban nhap khong hop le!" << endl;

		if (bFlag == true)
		{
			if (iDem == 1)
			{
				iNamSomNhat = iNam;
				iThangSomNhat = iThang;
				iNgaySomNhat = iNgay;
			}
			else
			{
				if (iNam < iNamSomNhat)
					iNamSomNhat = iNam;

				if (iThang < iThangSomNhat)
					iThangSomNhat = iThang;

				if (iNgay < iNgaySomNhat)
					iNgaySomNhat = iNgay;
			}
		}
		} while (iNgay != 0 && iThang != 0 && iNam != 0);

	cout << iNgaySomNhat << " " << iThangSomNhat << " " << iNamSomNhat << "la ngay som nhat!";
	_getch();
}

Thấy quen quen: Bài tập ngày sớm nhất

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?