Video Ngôn Ngữ C - 14 - Lệnh Switch với số nguyên

#include <stdio.h>
#include <stdlib.h>
 
int main()
{
   int so_ngay_trong_thang = 13;
   switch (so_ngay_trong_thang){
    case 1:
       printf("thang 1, 31 ngay\n");
       break;
    case 2:
       printf("thang 2, 28 trong nam, 29 ngay nam nhuan\n");
       break;
    case 3:
       printf("thang 3, 31 ngay\n");
       break;
    case 4:
       printf("thang 4, 30 ngay\n");
       break;
    case 5:
       printf("thang 5, 31 ngay\n");
       break;
    case 6:
       printf("thang 6, 30 ngay\n");
       break;
    case 7:
       printf("thang 7, 31 ngay\n");
       break;
    case 8:
       printf("thang 8, 31 ngay\n");
       break;
    case 9:
       printf("thang 9, 30 ngay\n");
       break;
    case 10:
       printf("thang 10, 31 ngay\n");
       break;
    case 11:
       printf("thang 11, 30 ngay\n");
       break;
    case 12:
       printf("thang 12, 31 ngay\n");
       break;
    default:
        printf("xin loi 1 nam chi co 12 thang thoi\n");
        break;
       };
       return 0;
}

#Đăng ký khóa học C++ cơ bản 2016 ( NEW ) tại đây :
#Thông tin về khóa học xem tại đây :

-Sự khác biệt giữa 2 khóa học cũ và mới :
+Khóa học C++ cơ bản 2016 là khóa học mới, được đầu tư nhiều hơn từ nội dung, phương pháp học, cách học hiệu quả.
+Trong khóa học còn có nhiều kiến thức mới như thực hành trên HackerRank, thực hành trên Codefights và Đạt nghĩ mọi người nên học khóa học mới, bởi vì đây là kiến thức mới, phù hợp với hiện tại… Mặt khác âm thanh cũng tốt hơn nhiều so với khóa học cũ giúp đỡ việc lắng nghe và hiểu được tốt hơn.

3 Likes

Trả bài tập cuối clip:

Mà e thấy vầy thì lằng nhằng quá, chắc có cách gộp các case giống nhau lại phải ko a !?

5 Likes

Như vầy là gọn rồi đấy. mà @Kido thử copy và post code vào để sau này các bạn khác có thể copy code đó của em được. Như vậy các bạn xem sau đỡ bị mất hình hoặc gõ nhầm.

Em xem ở đây nhé:

4 Likes

Mọi người xem code của em thế đã ổn chưa, có cần chỉnh sửa gì không, cách trình bày code đã rõ ràng chưa ?!

#include <stdio.h>
#include <stdlib.h>

int main()
{
   int d;
   printf(" Nhap thang: ");
   scanf("%d", &d);
   // vao lenh switch
   switch (d)
   {
   case 1:
   case 3:
   case 5:
   case 7:
   case 8:
   case 10:
   case 12:
     printf(" So ngay cua thang %d la 31\n", d);
     break;
   case 4:
   case 6:
   case 9:
   case 11:
     printf(" So ngay cua thang %d la 30\n", d);
     break;
   case 2:
     printf(" So ngay cua thang 2 la 28 hoac 29\n");
     break;
   default:
     printf(" Sai");
     break;
   }
    return 0;
}
1 Like

#include <stdio.h>
#include <stdlib.h>

int main()
{
int thang;
printf(“Nhap thang:”);
scanf("%d",&thang);
switch (thang )
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
printf(“Thang co 31 ngay”);
break;
case 2:
printf(“Thang co 28/29 ngay”);
break;

case 4:
case 6:
case 9:
case 11:
    printf("Thang  co 30 ngay");
    break;
default:
    printf("Yeu cau nhap dung thang:" );
    break;
}
return 0;

}

    int so_thang;
    printf("Thang nay la thang ");
    scanf("%s",&so_thang);
    switch (so_thang) {
    case 1:
    case 3:
    case 5:
    case 7:
    case 8:
    case 10:
    case 12:
        printf("So ngay cua thang %s la 31 ngay\n",so_thang);
        break;
    case 4:
    case 6:
    case 9:
    case 11:
        printf("So ngay cua thang %s la 30 ngay\n",so_thang);
        break;
    case 2:
        printf("So ngay cua thang %s la 28/29 ngay\n",so_thang);
        break;
    default:
        printf("Vui long nhap dung thang");
        break;

Em làm giống bạn kia mà sao nhập tháng nào cũng kêu vui lòng nhập đúng tháng vậy mấy anh

Đổi lại thành scanf("%d" đi em :slight_smile:

2 Likes

Cho em hỏi tại sao lại vậy được không anh ?

&s dùng để nhập chuỗi
&d dùng để nhập số int

2 Likes

Anh ơi, em thấy đề bài của anh là viết CT in ra số ngày trong mỗi tháng sử dụng switch như tháng 1, 31 ngày… nhưng nếu làm theo như kết quả hướng dẫn của anh thì kết quả sẽ ra là “xin loi 1 nam chi co 12 thang thoi” ạ vì em nghĩ do anh để break ngắt dưới mỗi dòng lệnh case và đang để int so_ngay_trong_thang = 13 ạ!
Do đó complier sẽ hiểu là 1 năm ko có 13 tháng tức rơi và trường hợp default
Em nghĩ nếu theo như đề bài của anh thì sẽ phải đặt int so_ngay_trong_thang = 1 và không sử dụng câu lệnh break; trong các câu lệnh case mà chỉ sử dụng tại case 12 và default thôi mới đúng đúng không anh?
Đây là kết quả em làm ạ!


@Em có một câu hỏi hơi ngu một tí là có thể khối lệnh if với số tháng <=12 thì sẽ có lệnh switch in ra số ngày các tháng trong năm (lệnh trong lệnh) còn nếu >12 thì sẽ không có tháng nào như thế có được không ạ? Vì khi em làm thì bị error lung tung cả nên em xin anh chỉ dẫn ạ!
Em cảm ơn anh!

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