Bài tập về Switch case trong C/C++

bai tap ve switch case trong C 1

Bài toán luyện tập lập trình C/C++ số 22 là một bài toánvề switch case trong C/C++. Bài tập trả về số ngày của một tháng trong năm.

1.Giới thiệu bài toán

Switch case là một cấu trúc có điều kiện của ngôn ngữ C/C++. Cấu trúc thuộc loại cấu trúc giống if, else trong C/C++. Trong bài viết này, mình sẽ đưa ra cho bạn một bài tập khá thú vị về phần này:

Đề bài:

Viết hàm nhập vào một tháng m hợp lệ và cho biết tháng đó có bao nhiêu ngày?

Bài toán khá đơn giản, nó giúp bạn hiểu được cấu trúc switch case trong C.

2. Ý tưởng giải bài toán

Mình sẽ sử dụng cấu trúc switch trong việc đưa ra ngày của tháng. Cụ thể:

  • Tháng 1, 3, 5, 7, 8, 10, 12 sẽ có 31 ngày
  • Tháng 4, 6, 9, 11 có 30 ngày
  • Tháng 2 năm nhuận có 29 ngày, năm thường 28 ngày.

Vấn đề thứ 2 chúng ta cần biết năm đó là năm nhuận hay không?
Do đó mình viết thêm phần nhập vào năm và kiểm tra xem năm đó là năm nhuận hay không?

3. Thuật toán kiểm tra một năm bất kì có phải là năm nhuận hay không?

Ý tưởng: Năm nhuận là năm chia hết cho 4 nhưng không chia hết cho 100

Với ý tưởng này mình viết hàm sau:

int NamNhuan(int a){
	if(a%4==0 && a%100!=0)
		return 1;
	else
		return 0;
}

Nếu là năm nhuận, return 1, năm không nhuận return 0;

4. Hàm trả về ngày của tháng trong năm

Hàm của mình viết dựa vào ý tưởng mình trình bày ở mục 2, mời bạn tham khảo:

void ReturnDate(){
	int Year;
	int Month;
	printf("Nhap Nam: "); scanf("%d",&Year);
	do{
		printf("Nhap thang hop le: ");
		scanf("%d",&Month);
	}
	while(Month<1 || Month>12);
	
	switch(Month){
	case 1:
	case 3:
	case 5:
	case 7:
	case 8:
	case 10:
	case 12:
	printf("\nThang %d co 31 ngay!", Month);
	break;
	
	case 2:{
		if(NamNhuan(Year))
			printf("\nThang 2 co 29 ngay!");
		else 
			printf("\nThang 2 co 28 ngay!");
		break;
	}
		
	case 4:
	case 6:
	case 9:
	case 11:
	printf("\nThang %d co 30 ngay!",Month);
	break;
	}
}

Chương trình hoàn chỉnh: bạn viết hai hàm liệt kê trên. Sau đó ở hàm main() bạn gọi hàm thứ 2 ra là được.

Kết quả chạy chương trình:

Ví dụ tháng 2 năm nhuận!

bai tap ve switch case trong C 2

Ví dụ tháng 2 năm bình thường:

bai tap ve switch case trong C 3

Ví dụ thàng bình thường:

bai tap ve switch case trong C 4

Bài viết của mình đến đây là hết, càm ơn bạn đâ quan tâm bài viết. Rất mong nhận được ý kiến đóng góp của bạn đọc về bài viết này của mình.

Xem tiếp bài 23

Xem lại bài 21: Tách mảng trong C/C++

Tải về 67 bài tập đề cương lập trình C/C++

LEAVE A REPLY

Please enter your comment!
Please enter your name here