課程
/后端開發
/C
/C語言入門
用Switch計算月數的天數不還是人口算的,沒用到電腦嗎?我還以為要用程序來分別大月與小月
2021-09-16
源自:C語言入門 4-17
正在回答
#include <stdio.h>
int main()?
{?
? ? /* 定義需要計算的日期 */
? ? int year = 2008;
? ? int month = 8;
? ? int day = 8;
? ? /*
? ? ?* 請使用switch語句,if...else語句完成本題
? ? ?* 如有想看小編思路的,可以點擊左側任務中的“不會了怎么辦”
? ? ?* 小編還是希望大家獨立完成哦~
? ? ?*/
? ? int flag=1;
? ? int num=day;
? ? switch(month)
? ? ?{
? ? ? ? case 12:? ? num+=30;
? ? ? ? case 11:? ? num+=31;
? ? ? ? case 10:? ? num+=30;
? ? ? ? case 9:? ? ?num+=31;
? ? ? ? case 8:? ? ?num+=31;
? ? ? ? case 7:? ? ?num+=30;
? ? ? ? case 6:? ? ?num+=31;
? ? ? ? case 5:? ? ?num+=30;
? ? ? ? case 4:? ? ?num+=31;
? ? ? ? case 3:? ? ?num+=28;
? ? ? ? case 2:? ? ?num+=31;
? ? ? ? case 1:? ? ?num=num; break;
? ? ? ? default:
? ? ? ? ? ? ? ? ? ? printf("一年只有12個月\n");
? ? ? ? break;
? ? ?}
? ? ?
? ? if(year%400==0 || (year%100!=0 && year%4==0))
? ? ? ? flag=1;
? ? else
? ? ? ? flag=0;
? ? ? ??
? ? if(flag==1 && month>2)num++;
? ? printf("%d年%d月%d日是該年的第%d天\n",year, month, day, num);
return 0;
}
可以不用人算啊,但是你得教給電腦每個月各是多少天,給你看看我第一次寫的程序哈哈哈哈,輸出確實是正確的
? ? int i;
? ? int j;
? ? int k=0;
? ? int f;
? ? if(year%100==0&&year%400==0||year%4==0&&year%100!=0)f=1;
? ? else f=0;
? ? ? ?for(i=1;i<=month-1;i++)
? ? ? ?{
? ? ? ? ? ?switch(i)
? ? ? ? ? ?{
? ? ? ? ? ? ? ?case 1:
? ? ? ? ? ? ? ?j=31;
? ? ? ? ? ? ? ?k=k+j;
? ? ? ? ? ? ? ?break;
? ? ? ? ? ? ? ?case 3:
? ? ? ? ? ? ? ?case 5:
? ? ? ? ? ? ? ?case 7:
? ? ? ? ? ? ? ?case 8:
? ? ? ? ? ? ? ?case 10:
? ? ? ? ? ? ? ?case 12:
? ? ? ? ? ? ? ?case? 4:
? ? ? ? ? ? ? ?j=30;
? ? ? ? ? ? ? ?case? 6:
? ? ? ? ? ? ? ?case? 9:
? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ?case 2:
? ? ? ? ? ? ? ?j=29;
? ? ? ? ? ?}
? ? ? ? ? ?
? ? ? ?}
? ?k+=day;
? ?if(i==1)k+=1;
? ? printf("%d年%d月%d日是該年的第%d天",year,month,day,k);
舉報
C語言入門視頻教程,帶你進入編程世界的必修課-C語言
4 回答我也是醉了
3 回答我TM也是醉了 這bug
1 回答咋加了P就可以過了 醉醉的
1 回答結果不是對了么?看到小編的代碼我都醉了
2 回答我真的不明白我在哪里錯了?誰能幫我?謝謝
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2021-10-24
#include <stdio.h>
int main()?
{?
? ? /* 定義需要計算的日期 */
? ? int year = 2008;
? ? int month = 8;
? ? int day = 8;
? ? /*
? ? ?* 請使用switch語句,if...else語句完成本題
? ? ?* 如有想看小編思路的,可以點擊左側任務中的“不會了怎么辦”
? ? ?* 小編還是希望大家獨立完成哦~
? ? ?*/
? ? int flag=1;
? ? int num=day;
? ? switch(month)
? ? ?{
? ? ? ? case 12:? ? num+=30;
? ? ? ? case 11:? ? num+=31;
? ? ? ? case 10:? ? num+=30;
? ? ? ? case 9:? ? ?num+=31;
? ? ? ? case 8:? ? ?num+=31;
? ? ? ? case 7:? ? ?num+=30;
? ? ? ? case 6:? ? ?num+=31;
? ? ? ? case 5:? ? ?num+=30;
? ? ? ? case 4:? ? ?num+=31;
? ? ? ? case 3:? ? ?num+=28;
? ? ? ? case 2:? ? ?num+=31;
? ? ? ? case 1:? ? ?num=num; break;
? ? ? ? default:
? ? ? ? ? ? ? ? ? ? printf("一年只有12個月\n");
? ? ? ? break;
? ? ?}
? ? ?
? ? if(year%400==0 || (year%100!=0 && year%4==0))
? ? ? ? flag=1;
? ? else
? ? ? ? flag=0;
? ? ? ??
? ? if(flag==1 && month>2)num++;
? ? ? ??
? ? printf("%d年%d月%d日是該年的第%d天\n",year, month, day, num);
return 0;
}
2021-09-17
可以不用人算啊,但是你得教給電腦每個月各是多少天,給你看看我第一次寫的程序哈哈哈哈,輸出確實是正確的
#include <stdio.h>
int main()?
{?
? ? /* 定義需要計算的日期 */
? ? int year = 2008;
? ? int month = 8;
? ? int day = 8;
? ? int i;
? ? int j;
? ? int k=0;
? ? int f;
? ? if(year%100==0&&year%400==0||year%4==0&&year%100!=0)f=1;
? ? else f=0;
? ? ? ?for(i=1;i<=month-1;i++)
? ? ? ?{
? ? ? ? ? ?switch(i)
? ? ? ? ? ?{
? ? ? ? ? ? ? ?case 1:
? ? ? ? ? ? ? ?j=31;
? ? ? ? ? ? ? ?k=k+j;
? ? ? ? ? ? ? ?break;
? ? ? ? ? ? ? ?case 3:
? ? ? ? ? ? ? ?j=31;
? ? ? ? ? ? ? ?k=k+j;
? ? ? ? ? ? ? ?break;
? ? ? ? ? ? ? ?case 5:
? ? ? ? ? ? ? ?j=31;
? ? ? ? ? ? ? ?k=k+j;
? ? ? ? ? ? ? ?break;
? ? ? ? ? ? ? ?case 7:
? ? ? ? ? ? ? ?j=31;
? ? ? ? ? ? ? ?k=k+j;
? ? ? ? ? ? ? ?break;
? ? ? ? ? ? ? ?case 8:
? ? ? ? ? ? ? ?j=31;
? ? ? ? ? ? ? ?k=k+j;
? ? ? ? ? ? ? ?break;
? ? ? ? ? ? ? ?case 10:
? ? ? ? ? ? ? ?j=31;
? ? ? ? ? ? ? ?k=k+j;
? ? ? ? ? ? ? ?break;
? ? ? ? ? ? ? ?case 12:
? ? ? ? ? ? ? ?j=31;
? ? ? ? ? ? ? ?k=k+j;
? ? ? ? ? ? ? ?break;
? ? ? ? ? ? ? ?case? 4:
? ? ? ? ? ? ? ?j=30;
? ? ? ? ? ? ? ?k=k+j;
? ? ? ? ? ? ? ?break;
? ? ? ? ? ? ? ?case? 6:
? ? ? ? ? ? ? ?j=30;
? ? ? ? ? ? ? ?k=k+j;
? ? ? ? ? ? ? ?break;
? ? ? ? ? ? ? ?case? 9:
? ? ? ? ? ? ? ?j=30;
? ? ? ? ? ? ? ?k=k+j;
? ? ? ? ? ? ? ?break;
? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ?case 2:
? ? ? ? ? ? ? ?j=29;
? ? ? ? ? ? ? ?k=k+j;
? ? ? ? ? ? ? ?break;
? ? ? ? ? ? ? ?
? ? ? ? ? ?}
? ? ? ? ? ?
? ? ? ?}
? ?k+=day;
? ?if(i==1)k+=1;
? ? printf("%d年%d月%d日是該年的第%d天",year,month,day,k);