Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

In lịch 1 tháng tùy chọn dùng for loop trong C


Logic in lịch 1 tháng

// In khoảng trống cho các ngày trước ngày 1
for(i = 1; i < first; i++)
    printf("   ");

// In các ngày của tháng
for(i = 1; i <= noofdays; i++) {
    printf("%3d", i);
    if ((first + i - 1) % 7 == 0)
        printf("\n");
}

Chương trình hoàn chỉnh

#include <stdio.h>

int main() {
    int i, noofdays, first;
    
    printf("Nhập số ngày trong tháng:\n");
    scanf("%d", &noofdays);
    printf("Nhập thứ của ngày 1 (1=CN, 2=T2,..., 7=T7):\n");
    scanf("%d", &first);
    
    // In header thứ (tùy chọn)
    printf("CN T2 T3 T4 T5 T6 T7\n");
    
    // In khoảng trống đầu tháng
    for(i = 1; i < first; i++)
        printf("    ");
    
    // In các ngày
    for(i = 1; i <= noofdays; i++) {
        printf("%3d ", i);
        if ((first + i - 1) % 7 == 0)
            printf("\n");
    }
    printf("\n");
    return 0;
}

Kết quả chạy

Nhập số ngày trong tháng: 30
Nhập thứ của ngày 1: 4 (Thứ 4)

CN T2 T3 T4 T5 T6 T7
        1   2   3   4
 5   6   7   8   9  10  11
12  13  14  15  16  17  18
19  20  21  22  23  24  25
26  27  28  29  30