30/09/2018, 22:03

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

Khánh Nguyễn viết 00:15 ngày 01/10/2018

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

Qúy_Night_0806 viết 00:04 ngày 01/10/2018

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

Nguyễn Tấn Khoa viết 00:15 ngày 01/10/2018

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

Pham Van Hai viết 00:17 ngày 01/10/2018

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

Nguyễn Tấn Khoa viết 00:04 ngày 01/10/2018

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

Qúy_Night_0806 viết 00:10 ngày 01/10/2018

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?

Nguyễn Tấn Khoa viết 00:17 ngày 01/10/2018

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”);

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

Qúy_Night_0806 viết 00:09 ngày 01/10/2018

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

Pham Van Hai viết 00:15 ngày 01/10/2018

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.

Qúy_Night_0806 viết 00:06 ngày 01/10/2018
#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

Nguyễn Tấn Khoa viết 00:10 ngày 01/10/2018

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

Qúy_Night_0806 viết 00:14 ngày 01/10/2018

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

Nguyễn Tấn Khoa viết 00:04 ngày 01/10/2018
int main()
{
     return 0;
}

Là như thế này

Qúy_Night_0806 viết 00:19 ngày 01/10/2018

ok, cám ơn bạn

Tao Không Ngu. viết 00:11 ngày 01/10/2018

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

Đinh Thiện Khải viết 00:09 ngày 01/10/2018

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.

Bài liên quan
0