‘壹’ c语言给一个日期求星期几
#include<stdio.h>
voidmain(){
intdate;
charweek[7][3]={"六","天","一","二","三","四","五"};
scanf("%d",&date);
if(date>=1&&date<=30)
{
date-=11;
while(date<0)date+=7;
printf("星期%s",week[date%7]);
}
elseprintf("输入日期有误!");
}
//运行示例:
‘贰’ c语言输出星期几的问题
要这样改
#include"stdio.h"
main()
{
int n;
scanf("%d",&n);
if(n==1)
printf("Monday\n");
else if(n==2)
printf("Tuesday\n");
else if(n==3)
printf("Wednesday\n");
else if(n==4)
printf("Thursday\n");
else if(n==5)
printf("Friday\n");
else if(n==6)
printf("Saturday\n");
else if(n==7)
printf("Sunday\n");
else
printf("Error\n");
}
用switch可能好点
‘叁’ 一个简单的C语言问题:输入星期几首字母,判断是星期几!
printf("Please
input
the
2nd
letter
of
the
day:\n");
b=getchar();在这句前加一句:getchar();即可
if(b=='u')
因为如果就这一句b=getchar();捕捉的是回车即
b='\n'所以在这句前加一句getchar将回车先捕捉
‘肆’ C语言 万年历中 星期差的计算问题
这个星期差指的是每个月的1日的星期几与这年1月1日星期几间的差,不是跨年计算的,是同一年的月份的第1天的星期几和1月1日的差。
程序里有:
case 5: dm=1+m2; month=31; break;
意思就是说如果1月1日是星期六,那么同年5月1日就是星期六+(1+m2)。
如果是闰年,m2=1,否则m2=0。
2000年是闰年,所以2000年5月1日就是 星期六+(1+1)=星期一。
每月第n日就是第1日的(星期几+(n-1))%7的值了:
所以,5月4日就是 星期(六+(1+1)+(4-1))%7=4,星期四。
‘伍’ C语言问题---计算星期
#define YES 1
#define NO 0
int isleap(int year)
{int leap=NO;
if(year%4==0&&year%100!=0||year%400==0)
leap=YES;
return leap;
}
int week-of-new-year-day(int year)
{int n=year-1980;
n=n+n/4+1;
n=n%7;
return n;
}
main()
{ int year,month,day,weekday,len,i,j;
scanf("%d-%d-%d",&year,&month,&day);
weekday=week_of_newyears_day(year);
for(i=1;i<=month-1;j++)
{
if(i==4||i==6||i==9||i==11)
len=30;
else if(i==2)
{if (isleap(year))
len=29;
else len=28;
}
else len=31;
for(j=1;j<=len;j++)
{ weekday++;weekday%=7;}
}
for(i=1;i<=day;i++)
{weekday++;weekday%=7;}
swith(weekday)
{ case 1:printf("SUNDAY");
case 2:printf("MONDAY");
case 3:printf("THEUSDAY");
case 4:printf("WEDNESDAUY");
case 5:printf("THURSDAY");
case 6:printf("FRISDAY");
case 7:printf("SATURDAY");
}
}
‘陆’ C语言 给日期算星期几
补充一个错误,下面回答同理
case3:if(d>32){b=1printf("dayiserror. ")};break;
case4:if(d>31){b=1printf("dayiserror. ")};break;
case5:if(d>32){b=1printf("dayiserror. ")};break;
case6:if(d>31){b=1printf("dayiserror. ")};break;
case7:if(d>32){b=1printf("dayiserror. ")};break;
case8:if(d>32){b=1printf("dayiserror. ")};break;
case9:if(d>31){b=1printf("dayiserror. ")};break;
case10:if(d>32){b=1printf("dayiserror. ")};break;
case11:if(d>31){b=1printf("dayiserror. ")};break;
case12:if(d>32){b=1printf("dayiserror. ")};break;
这一段代码if后面的条件全部大了1,限制值应该是31和30,除非你改成>=
‘柒’ C语言,根据输入的字母判断是星期几
你输入了S后的回车还在缓冲区中,后来被读取到letter中了,而不是你输入的字母,所以才会出错,你在之前再加一个getchar就行了。还有你的第二个else if中不需要再读取字母了,直接判断就行了。下面是整理后的代码。我建议你直接读取一段作为字符串来判断比较方便,这样比较麻烦。
#include <stdio.h>
void main()
{
printf("please enter the first letter of someday:\n");
char letter;
while ((letter = getchar()) != 'y') {
switch (letter) {
case 'S': {
printf("please enter the second letter:");
getchar();
if ((letter = getchar()) == 'a') {
printf("It is Saturday!\n");
} else if (letter == 'u') {
printf("It is Sunday!\n");
} else {
printf("error\n");
}
break;
}
case 'M':
printf("It is Monday!\n");
break;
case 'T': {
printf("please enter the second letter:");
getchar();
if ((letter = getchar()) == 'h') {
printf("It is Tuesday!\n");
} else if (letter == 'u') {
printf("It is Thursday!\n");
}
break;
}
case 'F':
printf("It is Friday!\n");
break;
case 'W':
printf("It is Wednesday!\n");
break;
}
}
}
‘捌’ c语言知道日期算星期几
//这定义的是一个二维数组(7行10列)
//每一个字符串,比如:"星期天"就是一行,共七个字符。
//汉字占两个字符,所以"星期天"就是7个字符(末尾应该还有一个'