『壹』 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個字元(末尾應該還有一個'