用c语言编写一程序实现如下功能:输入1、2、3、4、5、6、70(分别对应星期一至?

如题所述

用蔡勒公式即可:

#include <stdio.h>

int main ()

{

int y, m, d, c, w;

printf ("输入年 月 日(空格间隔):");

scanf ("%d %d %d", &y, &m, &d);

if (m ==1 || m == 2) 

{ //判断月份是否为1或2y--;m += 12;}

c = y / 100;

y = y - c * 100;

w = (c / 4) - 2 * c + (y + y / 4) + (13 * (m + 1) / 5) + d - 1;

while (w < 0) w += 7;

w %= 7;

if (w == 0) printf ("星期日");

else printf ("星期%d", w);

return 0;

方法二:

#include 

void main ()

{

int y,m,d,c,s,w;

printf("请输入8位年月日,以空格隔开:");

scanf("%d%d%d",&y,&m,&d);

if (m==1) c=d;

else if (m==2) c=31 d;

else if (m==3) c=31 28 d;

else if (m==4) c=31 28 31 d;

else if (m==5) c=31 28 31 30 d;

else if (m==6) c=31 28 31 30 31 d;

else if (m==7) c=31 28 31 30 31 30 d;

else if (m==8) c=31 28 31 30 31 30 31 d;

else if (m==9) c=31 28 31 30 31 30 31 31 d;

else if (m==10) c=31 28 31 30 31 30 31 31 30 d;

else if (m==11) c=31 28 31 30 31 30 31 31 30 31 d;

else if (m==12) c=31 28 31 30 31 30 31 31 30 31 30 d;

if (m>2)

{if (y0==0) {if (y@0==0) c=c 1;}

else if (y%4==0) c=c 1;}

s=(y-1)*365 (y-1)/4-(y-1)/100 (y-1)/400 c;

w=s%7;

switch (w)

{

case 0: printf("星期日");break;

case 1: printf("星期一");break;

case 2: printf("星期二");break;

case 3: printf("星期三");break;

case 4: printf("星期四");break;

case 5: printf("星期五");break;

case 6: printf("星期六");break;

printf("");

}

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-11-24

C语言实现输入1到7的数字,输出对应是星期几,参考代码如下:

#include "stdio.h"

int main()

{

    int d;

    const char wd[7][3]= {"一","二","三","四","五","六","日"};

    scanf("%d",&d);

    printf("星期%s",wd[d-1]);

    return 0;

}

本回答被网友采纳
相似回答