Bài Tập In Ra Số Ngày Trong Tháng Dùng Switch Case Trang chủ » Tính Số Ngày Trong Tháng C++ » Bài Tập In Ra Số Ngày Trong Tháng Dùng Switch Case Có thể bạn quan tâm Tính Số Ngày Trong Tháng Excel Tính Số Ngày Trong Tháng Java Tính Số Ngày Trong Tháng Javascript Tính Số Ngày Trong Tháng Php Tính Số Ngày Trong Tháng Python Bài tập in ra số ngày trong tháng dùng switch case programming c c++ minhbo (nguyen minh huy) October 29, 2015, 1:13pm #1 Continuing the discussion from Viết chương trình in ra số ngày trong mỗi tháng, bằng cách sử dụng switch: Viết chương trình in ra số ngày trong mỗi tháng, bằng cách sử dụng switch Viết chương trình in ra số ngày trong mỗi tháng, bằng cách sử dụng swicth: Tháng 1 => 31 ngáy Tháng 2 => 28/29 ngày Có ai biết chỉ giúp em với cảm ơn nhiều 1 Like genius_hcmus (Đoàn Hiếu Tâm) October 29, 2015, 1:24pm #2 switch(month) { case 1: cout << "31 ngay" << endl; break; case 2: if(year%4 == 0 && year%100 !=0 || year % 400 == 0) cout << "29 ngay" << endl; else cout << "28 ngay" << endl; break; case 3: .... } Bạn tự viết tiếp nhé nguyenhuuca (Nguyen Ca) October 29, 2015, 3:09pm #3 Em đọc code dưới đây, không hiểu thì debug cho đến khi hiểu nhé, #include <stdio.h> // Khai bao kieu NGAY typedef struct { int ngay; int thang; int nam; } NGAY; // Nguyen mau ham int KiemTraNamNhuan(int nam); int TinhSoNgayTrongThang(int thang, int nam); int KiemTraHopLe(NGAY ng); void Nhap(NGAY &ng); void Xuat(NGAY ng, char *thongbao); int TinhSTTNgayTrongNam(NGAY ng); int TinhSTTNgay(NGAY ng); NGAY TinhNgayHomTruoc(NGAY ng); NGAY TinhNgayHomSau(NGAY ng); NGAY TinhNgayTruoc(NGAY ng, int k); NGAY TinhNgaySau(NGAY ng, int k); int TinhKhoangCach(NGAY ng1, NGAY ng2); int SoSanh(NGAY ng1, NGAY ng2); void main() { NGAY ng1, ng2; Nhap(ng1); Xuat(ng1, "Ngay 1: "); //Nhap(ng2); //Xuat(ng2, "Ngay 2: "); if (KiemTraNamNhuan(ng1.nam) == 1) printf("Nam %d la nam nhuan\n", ng1.nam); else printf("Nam %d khong la nam nhuan\n", ng1.nam); printf("Ngay 1 la ngay thu %d trong nam %d\n", TinhSTTNgayTrongNam(ng1), ng1.nam); printf("Ngay 1 la ngay thu %d ke tu 1/1/1\n", TinhSTTNgay(ng1)); Xuat(TinhNgayHomTruoc(ng1), "Ngay hom truoc cua Ngay 1 la: "); Xuat(TinhNgayHomSau(ng1), "Ngay hom sau cua Ngay 1 la: "); int k; printf("Nhap k: "); scanf("%d", &k); Xuat(TinhNgayTruoc(ng1, k), "Ngay truoc k ngay cua Ngay 1 la: "); Xuat(TinhNgaySau(ng1, k), "Ngay sau k ngay cua Ngay 1 la: "); } // Dinh nghia ham int KiemTraNamNhuan(int nam) { if (nam % 400 == 0 || (nam % 4 == 0 && nam % 100 != 0)) return 1; return 0; } int TinhSoNgayTrongThang(int thang, int nam) { int songay; switch (thang) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: songay = 31; break; case 4: case 6: case 9: case 11: songay = 30; break; case 2: if (KiemTraNamNhuan(nam) == 1) songay = 29; else songay = 28; break; default: songay = 0; } return songay; } int KiemTraHopLe(NGAY ng) { int hople = 1; if (ng.nam < 0) hople = 0; else if (ng.thang < 1 || ng.thang > 12) hople = 0; else if (ng.ngay < 1 || ng.ngay > TinhSoNgayTrongThang(ng.thang, ng.nam)) hople = 0; return hople; } void Nhap(NGAY &ng) { int hople; do { printf("Nhap ngay: "); scanf("%d", &ng.ngay); printf("Nhap thang: "); scanf("%d", &ng.thang); printf("Nhap nam: "); scanf("%d", &ng.nam); hople = KiemTraHopLe(ng); if (!hople) printf("Nhap lai! Ngay khong hop le.\n"); } while(!hople); } void Xuat(NGAY ng, char *thongbao) { printf("%s", thongbao); printf("%d/%d/%d\n", ng.ngay, ng.thang, ng.nam); } int TinhSTTNgayTrongNam(NGAY ng) { int stt = 0; // Tinh tong so ngay cac thang truoc do for (int i=1; i<ng.thang; i++) stt = stt + TinhSoNgayTrongThang(i, ng.nam); stt = stt + ng.ngay; return stt; } int TinhSTTNgay(NGAY ng) { int stt = 0; // Tinh tong so ngay cac nam truoc do for (int i=1; i<ng.nam; i++) if (KiemTraNamNhuan(i) == 1) stt = stt + 366; else stt = stt + 365; stt = stt + TinhSTTNgayTrongNam(ng); return stt; } NGAY TinhNgayHomTruoc(NGAY ng) { NGAY kq; if (ng.ngay == 1) // Ngay dau tien cua thang (1/?/?) { if (ng.thang == 1) // Thang dau tien cua nam (1/1/?) { kq.nam = ng.nam - 1; kq.thang = 12; kq.ngay = 31; } else { kq.nam = ng.nam; kq.thang = ng.thang - 1; kq.ngay = TinhSoNgayTrongThang(kq.thang, kq.nam); } } else { kq.ngay = ng.ngay - 1; kq.thang = ng.thang; kq.nam = ng.nam; } return kq; } NGAY TinhNgayHomSau(NGAY ng) { NGAY kq; int max = TinhSoNgayTrongThang(ng.thang, ng.nam); if (ng.ngay == max) // Ngay cuoi cung cua thang { if (ng.thang == 12) // Thang cuoi cung cua nam { kq.nam = ng.nam + 1; kq.thang = 1; kq.ngay = 1; } else { kq.nam = ng.nam; kq.thang = ng.thang + 1; kq.ngay = 1; } } else { kq.ngay = ng.ngay + 1; kq.thang = ng.thang; kq.nam = ng.nam; } return kq; } NGAY TinhNgayTruoc(NGAY ng, int k) { NGAY kq = ng; for (int i=0; i<k; i++) kq = TinhNgayHomTruoc(kq); return kq; } NGAY TinhNgaySau(NGAY ng, int k) { NGAY kq = ng; for (int i=0; i<k; i++) kq = TinhNgayHomSau(kq); return kq; } int TinhKhoangCach(NGAY ng1, NGAY ng2) { return TinhSTTNgay(ng1) - TinhSTTNgay(ng2); } int SoSanh(NGAY ng1, NGAY ng2) { int kc = TinhKhoangCach(ng1, ng2); if (kc > 0) return 1; else if (kc < 0) return -1; else return 0; } minhbo (nguyen minh huy) October 30, 2015, 7:42am #4 Anh ơi em mới học lệnh if else và lệnh switch trong C thôi.Nhờ anh giúp em với cảm ơn anh nhiều. Nguyen_PN (Nguyen Cong Quoc) July 27, 2017, 2:56am #5 mình cũng mới học viết đơn giản v thôi. 1.#include <stdio,h> 2,#include <stdlib.h> int main() { int thang=1; switch (thang){ case 1: printf(“thang 1 co 31 ngay”); break; case 2 : printf(“thang 2 co 28/29 ngay”); break;} return0; } ko biet dung ko. tai moi hoc den day thi lam den day minh thay dung them cai scanf la qua dep luon hehe Nguyen_Ke (Nguyễn Kế) October 12, 2017, 11:46am #6 #include using namespace std; int main(){ int n; cout << "Nhap so thang muon biet ngay: "; cin >> n; switch (n){ case 1: case 3: case 5: case 7: case 8: case 10: case 12: cout << “Thang co 31 ngay”; break; case 2: cout << “Thang co 28/29 ngay.”; break; case 4: case 6: case 9: case 11:cout << “Thang co 30 ngay.”; break; default:cout << “Nhap loi,xin kiem tra lai!”; } system("pause"); return 0; } Tan_Duy (Tan Duy) January 18, 2018, 4:34am #7 Tui nghĩ như vậy. không biết đúng không. int main() { int a; printf("nhap so a\n"); scanf("%d",&a); switch(a) { case 12: case 11: case 10: case 9: case 8: case 7: case 6: case 5: case 4: case 3: printf("la 30 ngay or"); case 1: printf(" 31 ngay"); break; case 2: printf("la 28 or 29 "); break; default: printf (" xin loi khong co thang do"); } return 0; } Buffalo_Young (Buffalo Young) January 18, 2018, 4:34am #8 for(int i = 1; i <= 12; i++) { switch(i) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: printf("\nThang %d co 31 ngay", i); case 4: case 6: case 9: case 11: printf("\nThang %d co 30 ngay", i); case 2: if(nam % 400 == 0 || (nam % 100 != 0 && nam % 4 == 0)) { printf("\nThang %d co 29 thang", i); } else { printf("\nThang %d co 28 ngay", i); } } } rogp10 (rogp10) January 18, 2018, 3:05am #9 ^ vòng for đó là để test? Tan_Duy: Tui nghĩ như vậy. không biết đúng không. Sai, người ta cần đúng 30 ngày. 1 Like Tan_Duy (Tan Duy) January 18, 2018, 4:31am #10 vậy những tháng nào 30 ngày thì gom vào 1 nhóm rồi break hả DayNhauHoc's Discord Học C++ Free? Click Blog Dạy Nhau Học Tự Học Lập Trình 83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao? Từ khóa » Tính Số Ngày Trong Tháng C++ Chương Trình Tìm Số Ngày Trong Tháng Bằng C / C++ C++ - Tìm Số Ngày Của Một Tháng Bất Kỳ được Nhập Từ Bàn Phím Viết Chương Trình Tìm Số Ngày Trong Tháng được Nhập Từ Bàn Phím Lập Trình C: Viết Chương Trình Nhập Vào Tháng Của Một Năm, Cho ... Tính Thứ Tự Của Ngày Trong Năm | How Kteam Tìm Ngày Trước Và Sau Của Một Ngày | How Kteam Lập Trình C++ Các Thao Tác Trên Ngày Tháng [Archive] Tính Thứ Trong Tuần được Nhập Vào Bằng C++ | Tìm ở đây Lập Trình Trực Quan - Tính Số Ngày Trong Tháng - MegaCode Tìm Số Ngày Của Một Tháng Trong C - Lập Trình Từ Đầu Viết Chương Trình Nhập Vào Tháng Và Năm Kiểm Tra In Ra ... - Học Tốt Chương Trình Java Tìm Số Ngày Của Tháng Trong Một Năm Bài Tập C++: Viết Chương Trình Nhập Ngày Tháng Năm. Kiểm Tra Xem ...