c語言計算星期幾
『壹』 c語言:用自定義函數來實現任意輸入一個日期,結果輸出其星期幾
c語言中,通過編寫自定義函數,可以輕松地計算任意輸入日期對應的星期幾。這需要考慮閏年以及每個月的天數。計算方法是累加前幾個月的天數加上當前月的天數。具體實現時,需要定義一個函數來判斷是否為閏年,並根據年份和月份輸入來計算天數。
首先,定義一個數組來存儲每個月的天數。同時,定義一個變數來記錄是否為閏年。接著,使用for循環累加前幾個月的天數,根據輸入的月份調整累加的范圍。最後,將當前月的天數加到累計天數上,得到最終的天數。為了簡化計算,可以使用自定義函數來判斷是否為閏年,從而正確計算2月份的天數。
下面是一個簡單的實現示例:
int mon[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int leap_year(int year) {
if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {
return 1;
}
return 0;
}
int main() {
int mon[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int y, m, d, days, leap;
scanf("%d%d%d", &y, &m, &d);
leap = leap_year(y);
for (int i = 1, days = 0; i < m; i++) {
if (i == 2 && leap) {
days += 29;
} else {
days += mon[i];
}
}
days += d;
printf("days=%d\n", days);
return 0;
}
通過上述代碼,可以准確地計算出輸入日期對應的天數。進一步地,可以結合星期幾的計算公式,實現計算星期幾的功能。這不僅有助於加深對c語言的理解,還能提高編程技巧。
『貳』 C語言 星期幾
#include<stdio.h>
int main()
{
int n,m;
char a[8][20]={"www","星期一","星期二","星期三","星期四","星期五","星期六","星期日",};
scanf("%d%d",&n,&m);
for(int i=1;i<=m;i++)//從星期n開始過m天;也就是循環m次;
{//n在[1,7]之間不停的循環;
if(n!=7)//不等於星期日,星期數加一;
n++;
if(n==7)//直到星期數等於星期日
{
n=1;//將星期數又重置為星期一;
}
}
for(int i=0;i<=7;i++)
{
if(n==i)
printf("%s",a[i]);
}
return 0;
}
希望能幫到你,望採納
『叄』 c語言計算日期為星期幾
#include<stdio.h>
int isRn(int num){
if((num%4==0&&num%400!=0)||num%400==0){
return 1;
}else{
return 0;
}
int monthDay(int year,int month){
if(month==1||month==3||month==5
||month==7||month==8||month==10
||month==12){
return 31;
}else if(month==4||month==6||month==9
||month==11)
{
return 30;
}else if(month==2){
if(isRn(int num)==1){
return 29;
}else{
return 28;
}
}
}
void main(){
int sum=0,year,month,day,i,temp,j;
printf("請輸入年份:");
scanf("%d",&year);
while(year<1900){
printf("年份必須從1900年開始!\n\n");
printf("請輸入年份:");
scanf("%d",&year);
}
printf("請輸入月份:");
scanf("%d",&month);
while(month<1||month>12){
printf("月份必須是1到12之間!\n\n");
printf("請輸入月份:");
scanf("%d",&month);
}
printf("請輸入日:");
scanf("%d",&day);
while(day>monthDay(year,month)||day<1){
printf("日必須從1開始,並且不能大於該月的天數!\n\n");
printf("請輸入日:");
scanf("%d",&day);
}
temp=month;
temp-=1;
for(i=1900;i<=year;i++){
for(j=1;j<=12;j++){
if(i==year&&j==temp){
break;
}
sum+= monthDay(year,j);
}
}
sum+=day;
printf("%d年%d月%d日,是星期",year,month,day)
if(sum%7==0){
printf("日。\n");
}else if(sum%7==1){
printf("一。\n");
}else if(sum%7==2){
printf("二。\n");
}else if(sum%7==3){
printf("三。\n");
}else if(sum%7==4){
printf("四。\n");
}else if(sum%7==5){
printf("五。\n");
}else if(sum%7==2){
printf("六。\n");
}
}