課程
/后端開發(fā)
/C
/C語言入門
求大佬教導(dǎo)下
我有些絕望
2019-06-09
源自:C語言入門 4-17
正在回答
可以參考我的代碼 跟你思路差不多
? ?int year = 2008;
? ? int month = 8;
? ? int day = 8;
? ? int sum = 0;
? ? int sum2=0;
? ? /*
? ? ?* 請使用switch語句,if...else語句完成本題
? ? ?* 如有想看小編思路的,可以點(diǎn)擊左側(cè)任務(wù)中的“不會了怎么辦”
? ? ?* 小編還是希望大家獨(dú)立完成哦~
? ? ?*/
? ??
? ? if((year%4==0&&year%100!=0)||year%400==0)
? ? ? ? ? ? {
? ? ? ? ? ? ?sum2=29;
? ? ? ? ? ? }
? ? else
? ? ? ? ? ? ?sum2=28;
? ? switch(month)
? ? {
? ? case 1:sum=sum+day;break; ? ?
? ? case 2:sum= day +30;break;
? ? case 3:sum=day+31+sum2;break;
? ? case 4:sum=day+30+31+sum2;break;
? ? case 5:sum=day+31+30+31+sum2;break;
? ? case 6:sum=day+30+31+30+31+sum2;break;
? ? case 7:sum=day+31+30+31+30+31+sum2;break;
? ? case 8:sum=day+31+31+30+31+30+31+sum2;break;
? ? case 9:sum=day+30+31+31+30+31+30+31+sum2;break;
? ? case 10:sum=day+31+30+31+31+30+31+30+31+sum2;break;
? ? case 11:sum=day+30+31+30+31+31+30+31+30+31+sum2;break;
? ? case 12:sum=day+31+30+31+30+31+31+30+31+30+31+sum2;break;
? ? default:printf("一年當(dāng)中只有12個月哦!");break;
? ? }
? ? printf("%d年%d月%d日是該年的第%d天\n",year,month,day,sum);
上面為什么要連續(xù)聲明兩次sum?然后是1月,sum=day就完了 為什么要賦值為0??
#include <stdio.h>
int main()?
{
? ? int year = 2008;
? ? int sum=0;
? ? for(int i=1; i<=month; i++)
? ? ? ? if(i==month)
? ? ? ? {
? ? ? ? ? ? sum+=day;
? ? ? ? ? ? break;
? ? ? ? }
? ? ? ? switch(i)
? ? ? ? ? ? case 1:
? ? ? ? ? ? case 3:
? ? ? ? ? ? case 5:
? ? ? ? ? ? case 7:
? ? ? ? ? ? case 8:
? ? ? ? ? ? case 10:
? ? ? ? ? ? case 12:
? ? ? ? ? ? ? ? sum+=31;
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? case 4:
? ? ? ? ? ? case 6:
? ? ? ? ? ? case 9:
? ? ? ? ? ? case 11:
? ? ? ? ? ? ? ? sum+=30;
? ? ? ? ? ? case 2:
? ? ? ? ? ? ? ? if(year%4==0&&year%100!=0||year%400==0)
? ? ? ? ? ? ? ? ? ? sum+=29;
? ? ? ? ? ? ? ? else
? ? ? ? ? ? ? ? ? ? sum+=28;
? ? ? ? ? ? default:
? ? printf("%d年%d月%d日是該年的第%d天",year,month,day,sum);
return 0;
}
int md(int i){
? ? switch(i)
? ? ? ? case 1:
? ? ? ? case 3:
? ? ? ? case 5:
? ? ? ? case 7:
? ? ? ? case 8:
? ? ? ? case 10:
? ? ? ? case 12:
? ? ? ? return 31;
? ? ? ? case 4:
? ? ? ? case 6:
? ? ? ? case 9:
? ? ? ? case 11:
? ? ? ? return 30;
? ? ? ? case 2:
? ? ? ? return 28;
? ? ? ? default:
? ? ? ? return 0;
{?
? ? /* 定義需要計算的日期 */
? ? ?int total = 0;
????for(int i=1;i<month;i++)
? ? ? ? total += md(i);
? ? if(year%4==0 && year%100!=0)
? ? ? ? total++;
? ? total+=day;
? ? printf("%d年%d月%d日是該年的第%d天",year,month,day, total);
????return 0;
if(year%400==0?&&?year&4==0?&&?year%100!=0) //當(dāng)year能被400整除,同時,year能被4整除,同時,year不能被100整除。 /*&&(與,以及,同時)滿足所有條件為真。? ||(或者)滿足一個條件為真。 !(非,不)不滿足條件為真。邏輯非好像要用在最前面。 if(!?0+1==1?&&?1+1==2)可以成功運(yùn)行, 而if(0+1==1?!?1+1==2) ??if(0+1==1?&&?1+1==2?!) ??這兩個都顯示運(yùn)行錯誤*/ //少了個括號及換成||。year能被400整除同時不能被100整除過分了點(diǎn)吧。 //右邊的顯示面板,錯誤的地方下方會有?^?標(biāo)記,或者是?^?加個波浪線標(biāo)記。? if(year%400==0?||?(year%4==0?&&?year%100!=0)) /*當(dāng)year能被400整除時,或者(當(dāng)year能被4整除,同時,year不能被100整除)。 則為真,否則運(yùn)行else。*/ //左邊窗口可以點(diǎn)擊"不會了怎么辦",可以比對看哪里錯誤。
舉報
C語言入門視頻教程,帶你進(jìn)入編程世界的必修課-C語言
3 回答我就不知道錯哪里了!
4 回答不知道是哪里錯了
1 回答不知道哪里錯了
2 回答不知道哪里錯了
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2019-06-12
可以參考我的代碼 跟你思路差不多
? ?int year = 2008;
? ? int month = 8;
? ? int day = 8;
? ? int sum = 0;
? ? int sum2=0;
? ? /*
? ? ?* 請使用switch語句,if...else語句完成本題
? ? ?* 如有想看小編思路的,可以點(diǎn)擊左側(cè)任務(wù)中的“不會了怎么辦”
? ? ?* 小編還是希望大家獨(dú)立完成哦~
? ? ?*/
? ??
? ? if((year%4==0&&year%100!=0)||year%400==0)
? ? ? ? ? ? {
? ? ? ? ? ? ?sum2=29;
? ? ? ? ? ? }
? ? else
? ? ? ? ? ? {
? ? ? ? ? ? ?sum2=28;
? ? ? ? ? ? }
? ? switch(month)
? ? {
? ? case 1:sum=sum+day;break; ? ?
? ? case 2:sum= day +30;break;
? ? case 3:sum=day+31+sum2;break;
? ? case 4:sum=day+30+31+sum2;break;
? ? case 5:sum=day+31+30+31+sum2;break;
? ? case 6:sum=day+30+31+30+31+sum2;break;
? ? case 7:sum=day+31+30+31+30+31+sum2;break;
? ? case 8:sum=day+31+31+30+31+30+31+sum2;break;
? ? case 9:sum=day+30+31+31+30+31+30+31+sum2;break;
? ? case 10:sum=day+31+30+31+31+30+31+30+31+sum2;break;
? ? case 11:sum=day+30+31+30+31+31+30+31+30+31+sum2;break;
? ? case 12:sum=day+31+30+31+30+31+31+30+31+30+31+sum2;break;
? ? default:printf("一年當(dāng)中只有12個月哦!");break;
? ? }
? ??
? ? printf("%d年%d月%d日是該年的第%d天\n",year,month,day,sum);
? ??
2019-06-12
上面為什么要連續(xù)聲明兩次sum?然后是1月,sum=day就完了 為什么要賦值為0??
2019-06-12
#include <stdio.h>
int main()?
{
? ? int year = 2008;
? ? int month = 8;
? ? int day = 8;
? ? int sum=0;
? ? for(int i=1; i<=month; i++)
? ? {
? ? ? ? if(i==month)
? ? ? ? {
? ? ? ? ? ? sum+=day;
? ? ? ? ? ? break;
? ? ? ? }
? ? ? ? switch(i)
? ? ? ? {
? ? ? ? ? ? case 1:
? ? ? ? ? ? case 3:
? ? ? ? ? ? case 5:
? ? ? ? ? ? case 7:
? ? ? ? ? ? case 8:
? ? ? ? ? ? case 10:
? ? ? ? ? ? case 12:
? ? ? ? ? ? ? ? sum+=31;
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? case 4:
? ? ? ? ? ? case 6:
? ? ? ? ? ? case 9:
? ? ? ? ? ? case 11:
? ? ? ? ? ? ? ? sum+=30;
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? case 2:
? ? ? ? ? ? ? ? if(year%4==0&&year%100!=0||year%400==0)
? ? ? ? ? ? ? ? ? ? sum+=29;
? ? ? ? ? ? ? ? else
? ? ? ? ? ? ? ? ? ? sum+=28;
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? default:
? ? ? ? ? ? ? ? break;
? ? ? ? }
? ? }
? ? printf("%d年%d月%d日是該年的第%d天",year,month,day,sum);
return 0;
}
2019-06-10
#include <stdio.h>
int md(int i){
? ? switch(i)
? ? {
? ? ? ? case 1:
? ? ? ? case 3:
? ? ? ? case 5:
? ? ? ? case 7:
? ? ? ? case 8:
? ? ? ? case 10:
? ? ? ? case 12:
? ? ? ? return 31;
? ? ? ? case 4:
? ? ? ? case 6:
? ? ? ? case 9:
? ? ? ? case 11:
? ? ? ? return 30;
? ? ? ? case 2:
? ? ? ? return 28;
? ? ? ? default:
? ? ? ? return 0;
? ? }
}
int main()?
{?
? ? /* 定義需要計算的日期 */
? ? int year = 2008;
? ? int month = 8;
? ? int day = 8;
? ? ?int total = 0;
????for(int i=1;i<month;i++)
? ? {
? ? ? ? total += md(i);
? ? }
? ? if(year%4==0 && year%100!=0)
? ? {
? ? ? ? total++;
? ? }
? ? total+=day;
? ? printf("%d年%d月%d日是該年的第%d天",year,month,day, total);
????return 0;
}
2019-06-09