亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

大佬幫忙指點一下哪里錯了

#include <stdio.h>
int main()
{
??? /* 定義需要計算的日期 */
??? int year = 2008;
??? int month = 8;
??? int day = 8;

???? int k,sum,i=0,j=0,f=0,n=0;
???? for(k=0;k<=month;k++)
???? {
???????? switch(k)
???????? {
??????????? case 0:
?????????? n=0;
?????????? break;
????????? case 1:
????????? case 3:
????????? case 5:
????????? case 7:
????????? case 8:
????????? case 10:
????????? case 12:
????????? j+=31;
????????? break;
????????? case 2:
????????? f+=28;
????????? break;
????????? case 4:
????????? case 6:
????????? case 9:
????????? case 11:
????????? i+=30;
????????? break;
???????? }
???????? sum=i+j+f+n+day;
???????? if(year%400==0&&month>2)
???????? {
???????????? printf("這是一年中的第%d天",sum+1);
???????? }
???????? else
???????? {
???????????? printf("這是一年中的第%d天",sum);
???????? }
?? return 0;
}


正在回答

5 回答

標點符號

0 回復 有任何疑惑可以回復我~

#include <stdio.h>

int main()?

{?


?? ?int year = 2008;

? ? int month = 8;

? ? int day = 8;

? ? int febDays = 28;

? ? int totalDays = 0;

? ??

? ? /*計算二月份的天數

? ? 閏年包括普通閏年和世紀閏年;

? ? 普通年:能被4整除但不能被100整除的年份為普通閏年。(如2004年就是閏年,1999年不是閏年);

? ? 世紀年:能被400整除的為世紀閏年。(如2000年是閏年,1900年不是閏年)*/

? ? if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)

? ? {

? ? ? ? febDays = 29;

? ? }

? ??

? ? switch(month)

? ? {

? ? ? ? case 12:

? ? ? ? ? ? totalDays += 30;

? ? ? ? case 11:

? ? ? ? ? ? totalDays += 31;

? ? ? ? case 10:

? ? ? ? ? ? totalDays += 30;

? ? ? ? case 9:

? ? ? ? ? ? totalDays += 31;

? ? ? ? case 8:

? ? ? ? ? ? totalDays += 31;

? ? ? ? case 7:

? ? ? ? ? ? totalDays += 30;

? ? ? ? case 6:

? ? ? ? ? ? totalDays += 31;

? ? ? ? case 5:

? ? ? ? ? ? totalDays += 30;

? ? ? ? case 4:

? ? ? ? ? ? totalDays += 31;

? ? ? ? case 3:

? ? ? ? ? ? totalDays += febDays;

? ? ? ? case 2:

? ? ? ? ? ? totalDays += 31;

? ? ? ? case 1:

? ? ? ? ? ? totalDays += day;

? ? ? ? break;

? ? }

? ? printf("%d年%d月%d日是該年的第%d天", year, month, day, totalDays);

????return 0;

}

0 回復 有任何疑惑可以回復我~

寫簡單點不好嗎?搞那么復雜,沒人想看你的代碼的。大道至簡啊,兄dei

0 回復 有任何疑惑可以回復我~
#1

湘灤 提問者

剛開始學 還沒到大道 試一試不一樣的東西
2018-09-24 回復 有任何疑惑可以回復我~

另外要是月份只要是4月之后的你天數加起來怎么樣都會是那么幾十天..但實際上一年有365天.缺了好幾個月啊.

0 回復 有任何疑惑可以回復我~
#1

湘灤 提問者

我用了FOR哦 老鐵 會多次循環輸出的
2018-09-24 回復 有任何疑惑可以回復我~
#2

癇yu 回復 湘灤 提問者

之前沒看到你有for.現在看到了,倒是想問一下- -當這個循環剛開始的時候你的k的值是0,那么就會運行case 0的情況,而你case 0那里是寫了break 的...就已經脫出循環了,那么哪來的循環呢..
2018-09-28 回復 有任何疑惑可以回復我~
#3

癇yu 回復 湘灤 提問者

我們如果不看那個case 0的情況,就按你的思路走的話,那就是當k=1(第一個月),由于你case 1是空的,所以switch里什么都沒發生,然后到了下面sum的求和,i,j,f,n都是0(因為switch就是按情況(這里就是按k的值)運行,所以就可以看成sum=day,接著就會輸出一次。
2018-09-28 回復 有任何疑惑可以回復我~
#4

癇yu 回復 湘灤 提問者

然后因為你的for循環,所以開始第二次了,k=2的時候,i被求和成了28,然后那么sum就會是2個day的值以及i的值的和了喔.(這里很明顯就已經有問題了吧?),此外,由于你的輸出是在for循環里的,那么就又會再輸出一遍。然后到了第三次循環,k=3了,進入case 3,而case 3也是空的,那么就就等于是做了k=2的時候的操作了,sum就會是3個day的值以及2個i的值的和了.所以說,從一開始你的思路就不對..
2018-09-28 回復 有任何疑惑可以回復我~
查看1條回復

year不是應該磨上4=0嗎..為什么是400?

0 回復 有任何疑惑可以回復我~
#1

湘灤 提問者

是400呀
2018-09-24 回復 有任何疑惑可以回復我~
#2

湘灤 提問者 回復 湘灤 提問者

對不起。。。
2018-09-24 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

大佬幫忙指點一下哪里錯了

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號