编辑代码

#include<stdio.h>
#include<math.h>

int day() {
    int ch1[4][4] = {
        1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31
    };
    int ch2[4][4] = {
        2, 3, 6, 7, 10, 11, 14, 15, 18, 19, 22, 23, 26, 27, 30, 31
    };
    int ch3[4][4] = {
        4, 5, 6, 7, 12, 13, 14, 15, 20, 21, 22, 23, 28, 29, 30, 31
    };
    int ch4[4][4] = {
        8, 9, 10, 11, 12, 13, 14, 15, 24, 25, 26, 27, 28, 29, 30, 31
    };
    int ch5[4][4] = {
        16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31
    };

    int a;
    for(int i = 0; i < 4; i++) {
        for (int j = 0; j < 4; j++) {
            printf("%d\t", ch1[i][j]);
        }
        printf("\n");
    }
    do
    {
        printf("这些数字中包含您的出生日吗?包含请输入1,不包含请输入0:\t");
        scanf("%d", &a);
        if (a != 0 && a != 1)printf("错误。\n");
    }while(a != 1 && a != 0);

    int b;
    for(int i = 0; i < 4; i++) {
        for (int j = 0; j < 4; j++) {
            printf("%d\t", ch2[i][j]);
        }
        printf("\n");
    }
    do
    {
        printf("这些数字中包含您的出生日吗?包含请输入1,不包含请输入0:\t");
        scanf("%d", &b);
        if (b != 0 && b != 1)printf("错误。\n");
    }while(b != 1 && b != 0);

    int c;
    for(int i = 0; i < 4; i++) {
        for (int j = 0; j < 4; j++) {
            printf("%d\t", ch3[i][j]);
        }
        printf("\n");
    }
    do
    {
        printf("这些数字中包含您的出生日吗?包含请输入1,不包含请输入0:\t");
        scanf("%d", &c);
        if (c != 0 && c != 1)printf("错误。\n");
    }while(c != 1 && c != 0);

    int d;
    for(int i = 0; i < 4; i++) {
        for (int j = 0; j < 4; j++) {
            printf("%d\t", ch4[i][j]);
        }
        printf("\n");
    }
    do
    {
        printf("这些数字中包含您的出生日吗?包含请输入1,不包含请输入0:\t");
        scanf("%d", &d);
        if (d != 0 && d != 1)printf("错误。\n");
    }while(d != 1 && d != 0);

    int e;
    for(int i = 0; i < 4; i++) {
        for (int j = 0; j < 4; j++) {
            printf("%d\t", ch5[i][j]);
        }
        printf("\n");
    }
    do
    {
        printf("这些数字中包含您的出生日吗?包含请输入1,不包含请输入0:\t");
        scanf("%d", &e);
        if (e != 0 && e != 1)printf("错误。\n");
    }while(e != 1 && e != 0);

    int h;

    h = a*pow(2, 0)+b*pow(2, 1)+c*pow(2, 2)+d*pow(2, 3)+e*pow(2, 4);
    return h;
}

int month() {
    int mo1[6] = {
        1, 3, 5, 7, 9, 11
    }, mo2[6] = {
        2, 3, 6, 7, 10, 11
    }, mo3[5] = {
        4, 5, 6, 7, 12
    }, mo4[5] = {
        8, 9, 10, 11, 12
    };

    int q;
    for(int i = 0; i < 6; i++) {
        printf("%d\t", mo1[i]);
    }
    do
    {
        printf("\n这些数字中包含您的出生月吗?包含请输入1,不包含请输入0:\t");
        scanf("%d", &q);
        if (q != 0 && q != 1)printf("错误。\n");
    }while(q != 1 && q != 0);

    int w;
    for(int i = 0; i < 6; i++) {
        printf("%d\t", mo2[i]);
    }
    do
    {
        printf("\n这些数字中包含您的出生月吗?包含请输入1,不包含请输入0:\t");
        scanf("%d", &w);
        if (w != 0 && w != 1)printf("错误。\n");
    }while(w != 1 && w != 0);

    int e;
    for(int i = 0; i < 5; i++) {
        printf("%d\t", mo3[i]);
    }
    do
    {
        printf("\n这些数字中包含您的出生月吗?包含请输入1,不包含请输入0:\t");
        scanf("%d", &e);
        if (e != 0 && e != 1)printf("错误。\n");
    }while(e != 1 && e != 0);

    int r;
    for(int i = 0; i < 5; i++) {
        printf("%d\t", mo4[i]);
    }
    do
    {
        printf("\n这些数字中包含您的出生月吗?包含请输入1,不包含请输入0:\t");
        scanf("%d", &r);
        if (r != 0 && r != 1)printf("错误。\n");
    }while(r != 1 && r != 0);

    int m;
    m = q*pow(2, 0)+w*pow(2, 1)+e*pow(2, 2)+r*pow(2, 3);
    return m;
}
int main() {
    int x;
    do
    {
        printf("您的生日为%d月%d日。\n", month(), day());
        printf("是否继续?输入1继续或输入0退出。");
        do
        {
            scanf("%d", &x);
            if(x != 1 && x != 0)printf("\n错误!输入0退出或1继续。\n");

        }while(x != 1 && x != 0);
        printf("\n");
    }while(x == 1);
    return 0;
}