Hỏi về switch ngày tháng

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

int main()
{
    int nam,thang;
    printf("Nhap thang:");
    scanf("%d",&thang);
    switch(thang){
    case 1:
        printf(" thang 1 co 31 ngay");
        break;
    case 2:
         if( (nam%400==0) || (nam%4==0 && nam%100!=0))
            printf("Day la nam nhan");
            printf("thang 2 co 29 ngay");
         else
            printf("Day khong la nam nhuan");
            printf("thang 2 co 28 ngay");
         break;
    default:
        printf("tui khong biet");
   }
    return 0;
}

chạy thì nó cứ đề lỗi ở else :disappointed_relieved:

Indent lại đi bạn. Chóng mặt quá =))

1 Like

ok mà xóa sao ấy nhỉ?

1 Like

Có nút hình cây bút ở góc bên phải post của bạn đó. :slight_smile:. Click vô rồi sửa.

1 Like

Cậu lệnhif - else, từ 2 lệnh trở lên phải đc đặt trong ngoặc móc {}

1 Like

Còn tháng 2 chưa cho nhập năm mà so sánh luôn là sao. :joy:

1 Like

Tại sao thế? case 2:
if( (nam%400==0) || (nam%4==0 && nam%100!=0))
{printf(“Day la nam nhuan nen thang 2 co 29 ngay”);}
else
printf(“Day khong phai la nam nhuan nen thang 2 co 28 ngay\n”);
break;
nếu mình bỏ {} thì sao?

1 Like

ủa, ở trên là vầy mà :sweat_smile:

à ra rồi anh em ạ. Mình để khá nhiều sai sót. Cám ơn các bạn đã xem :blush:

Tại vì đó là quy tắc của ngôn ngữ C, bắt buộc phải tuân theo. Bỏ đi thì bạn thấy rồi đấy - lỗi.

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

int main()
{
    int nam,thang;
    printf("Nhap nam:");
    scanf("%d",&nam);
    printf("Nhap thang:");
    scanf("%d",&thang);
    switch(thang){
    case 1:
        printf(" thang 1 co 31 ngay");
        break;
    case 2:
         if( (nam%400==0) || (nam%4==0 && nam%100!=0))
            {printf("Day la nam nhuan nen thang 2 co 29 ngay");}
         else
            printf("Day khong phai la nam nhuan nen thang 2 co 28 ngay\n");
         break;
    case 3:
        printf("Thang 3 co 31 ngay");
        break;
    case 4:
        printf
        
   }
    return 0;
}

đây nè tui làm xong rồi

1 Like

Lần sao nếu post sourse thì nhớ đưa vô markdown cho dễ nhìn nhé :blush:

1 Like

Mình mới biết trang này. Mà markdown là gì thế?

1 Like
int main()
{
     return 0;
}

Là như thế này :wink:

1 Like

ok, cám ơn bạn :slight_smile:

1 Like

This post was flagged by the community and is temporarily hidden.

Cái này là do hàm if của bạn in ra màn hình 2 câu lệnh. Thì sau đến cái else kia nó sẽ không hiểu else của ai, nên báo lỗi là phải. Không có {} thì chỉ đc 1 câu lệnh thôi nhé. Câu lệnh thứ 2 thì biên dịch sẽ hiểu là ngoài if.

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