當前位置:首頁 » 編程語言 » c語言里的星期問題
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言里的星期問題

發布時間: 2022-06-22 23:05:09

『壹』 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個字元(末尾應該還有一個''結束符)。
//這里的10確實是隨便定義的數,但是要保證大於等於7
charstr[7][10]={"星期天","星期一","星期二","星期三","星期四","星期五","星期六"};
intyear,month,day;

//這是定義一個子函數,IsLeapYear也是隨便取的,
//但是要符合C語言的命名規范,並且最好有實際意義
intIsLeapYear()
{
if((year%4==0&&year%100!=0)||(year%400==0))
return1;
else
return0;
}

//這和上面一樣,定義子函數,名字是隨便取的,
//下劃線也是符合c語言命名規范的,所以可用
//intm是一個參數,用來保存主函數傳遞過來的值
intmonth_day(intm)
{
//這是數組初始化的一種格式,由於有初始值列表,
//系統會自動根據初始化數據確定數組大小
//比如這里相當於intmon_day[12]
intmon_day[]={31,28,31,30,31,30,31,31,30,31,30,31};

這些都是基礎,還是看看書吧