Yahoo Hỏi & Đáp sẽ ngừng hoạt động vào ngày 4 tháng 5 năm 2021 (Giờ Miền Đông nước Mỹ) và từ nay, trang web Yahoo Hỏi & Đáp sẽ chỉ ở chế độ đọc. Các thuộc tính hoặc dịch vụ khác của Yahoo hay tài khoản Yahoo của bạn sẽ không có gì thay đổi. Bạn có thể tìm thêm thông tin về việc Yahoo Hỏi & Đáp ngừng hoạt động cũng như cách tải về dữ liệu của bạn trên trang trợ giúp này.

Kiểm tra giúp mình đoạn code dưới đây ?

include<stdio.h>

#include<math.h>

#include<conio.h>

struct nhapngaythangnam

{

int ngay,thang,nam;

};

typedef nhapngaythangnam date;

void nhapdate(date &a)

{

printf("Nhap nam:");

scanf("%d",&a.nam);

int namnhuan=0;

if((a.nam)%4==0) namnhuan=1;

do

{

printf("\nNhap thang:");

scanf("%d",&a.thang);

}

while(a.thang<0||a.thang>=13);

switch(a.thang)

{

case 1,3,5,7,8,10,12:

do

{

printf("\nThang co 31 days");

printf("\n=>Nhap ngay:");

scanf("%d",&a.ngay);

}

while(a.ngay<0||a.ngay>=32);

break;

case 2:

if(namnhuan==1)

do

{

printf("\nDay la nam nhuan co 29 days");

printf("\n=>Nhap ngay nam nhuan:");

scanf("%d",&a.ngay);

}

while(a.ngay<0||a.ngay>=30);

else

do

{

printf("\nDay ko la nam nhuan co 28 days");

scanf("%d",&a.ngay);

}

while(a.ngay<0||a.ngay>=29);

break;

case 4,6,9,11:

do

{

printf("\nThang co 30 days");

printf("\n=>Nhap ngay:");

scanf("%d",&a.ngay);

}

while(a.ngay<0||a.ngay>=31);

break;

default:break;

}

}

void xuatdate(date a)

{

printf("\n\n***Xuat ngay thang vua nhap\n***");

printf("%d/%d/%d",a.ngay,a.thang,a.nam);

}

void main()

{

clrscr();

date a;

nhapdate(a);

xuatdate(a);

getch();

}

Cập nhật:

Viết chương trình nhập ngày tháng ngày hôm nay xuất ra màn hình và cho biết ngày tháng hôm trước và ngày tháng hôm sau.

VD khi nhập 30/6/2011-> hôm sau 1/7/2011, hôm trước 29/6/2011

Cập nhật 2:

Tại sao mình chạy chương trình nó chỉ cho nhập năm và tháng còn ngày thì ko nhập được ?

Cập nhật 3:

Thanks nhé.

Cập nhật 4:

Àh àh xin lỗi làm phiền bạn, mình lên mạng đọ thuật toán cho bik ngày tháng hôm sau, và ngày hôm trước chưa hỉu gì cả.Nên đành nhờ bạn giúp lun thanks bạn nhé do code mình yếu wa.

2 Câu trả lời

Xếp hạng
  • 1 thập kỷ trước
    Câu trả lời yêu thích

    Bài làm của bạn mình thấy hơi lủng củng bạn tham khảo bài mình hi vọng bạn hiểu

    #include<stdio.h>

    #include<math.h>

    #include<conio.h>

    struct nhapngaythangnam

    {

    int ngay,thang,nam;

    };

    typedef nhapngaythangnam date;

    int checkmonth(int month,int year) // hàm này trả về số ngày của 1 tháng ứng với 1 năm

    {

    int sn[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31};

    if (((year%4==0)&&(year%100!=0))||(year%400 ==0 ) ) // cái này kiểm tra năm nhuận

    sn[2] = 29;

    return sn[month];

    }

    void nhap(date &p)

    {

    printf("\nNhap ngay:");

    scanf("%d",&p.ngay);

    printf("\nNhap thang:");

    scanf("%d",&p.thang);

    printf("\nNhap nam:");

    scanf("%d",&p.nam);

    }

    void xuat(date p)

    {

    printf(" Ngay %d Thang %d Nam %d",p.ngay,p.thang,p.nam);

    }

    main()

    {

    date d,t;

    tt: nhap(d);

    if( 0 >=d.ngay || d.ngay>checkmonth(d.thang,d.nam) || 0>=d.thang || d.thang>12)

    {

    printf("\nBan nhap khong dung moi ban nhap lai:");

    goto tt;

    }

    printf("\nNgay ban vua nhap :");

    xuat(d);

    printf("\nNgay hom truoc cua ban la:");

    t=d; // 2 cái struct gán cho nhau thì nó sẽ lấy từng thành phần 1 mà gán giá trị cho nhau

    // có nghĩa là t.ngay=d.ngay,t.thang=d.thang,t.nam=d.nam, từ đoạn sau thì dễ rùi nha

    if(d.ngay==1)

    {

    if(d.thang==1)

    {

    t.ngay=checkmonth(t.thang-1,t.nam);

    t.thang=12;

    t.nam--;

    }

    else

    {

    t.ngay=checkmonth(t.thang-1,t.nam);

    t.thang--;

    }

    }

    else t.ngay--;

    xuat(t);

    printf("\nNgay hom sau cua ban la:");

    if(d.ngay==checkmonth(d.thang,d.nam))

    {

    if(d.thang==12)

    {

    d.ngay=1;

    d.thang=1;

    d.nam++;

    }

    else

    {

    d.ngay=1;

    d.thang++;

    }

    }

    else d.ngay++;

    xuat(d);

    getch();

    }

  • 1 thập kỷ trước

    Hjx hjx, tui mới học ngôn ngữ Pascal thui, Turbo C++ thì pó tay! :-<

Bạn vẫn có câu hỏi? Hãy hỏi ngay để nhận câu trả lời.