0

プロンプトは次のとおりです。カレンダーの日付のテキスト記述を含む文字列を読み取り、対応する曜日 (月曜日から日曜日) を出力する関数を実装します。この関数の有効な入力形式は次の 2 つです。

mm/dd/yyyy

例: 2014 年 3 月 4 日 出力: 火曜日

月 dd, yyyy

例: 2014 年 3 月 4 日 出力: 火曜日

ここで、dd は数字の日、mm は数字の月、yyyy は年、Month は月の名前です。すべての日と月は 2 桁で指定します (つまり、3 月の場合は 3 ではなく 03 を使用します)。2 番目の有効な形式では、Month と dd の間、および dd と yyyy の間に 1 つのスペースがあります。このタスクで完全な評価を得るために、プログラムは入力に対して正しい曜日を正しい形式で出力する必要があります。

私がこれまでに持っているコードは、私が入力した年の数字を私に与えることができますが、そこから私は何をすべきかわかりません。そもそも平日が違う。

#include<stdio.h>
int main() {
    int month, day, year, dm, dn, leap;
    printf("enter the month:");
    scanf("%d",&month);
    printf("enter the day:");
    scanf("%d",&day);
    printf("enter the year:");
    scanf("%d",&year);

    if((year%100 == 0 && year%400 == 0) || (year%4==0)) {
        if(month==1)
            dm=0;
        if(month==2)
            dm=31;
        if(month==3)
            dm=60;
        if(month==4)
            dm=91;
        if(month==5)
            dm=121;
        if(month==6)
            dm=152;
        if(month==7)
            dm=182;
        if(month==8)
            dm=213;
        if(month==9)
            dm=244;
        if(month==10)
            dm=274;
        if(month==11)
            dm=305;
        if(month==12)
            dm=335;
    }
    else { 
        if(month==1)
            dm=0;
        if(month==2)
            dm=31;
        if(month==3)
            dm=59;
        if(month==4)
            dm=90;
        if(month==5)
            dm=120;
        if(month==6)
            dm=151;
        if(month==7)
            dm=181;
        if(month==8)
            dm=212;
        if(month==9)
            dm=243;
        if(month==10)
            dm=273;
        if(month==11)
            dm=303;
        if(month==12)
            dm=334;
    }

    dn = dm+day;
    printf("the day number is :%d",dn);

    return 0;
}
4

0 に答える 0