大神在哪里
我套用了for語句為什么,什么都沒輸出來呢?
#include <stdio.h>
int main()?
{?
? ? /* 定義需要計(jì)算的日期 */
? ? int year = 2008;
? ? int month = 8;
? ? int day = 8;
? ? /*
? ? ?* 請(qǐng)使用swtich語句,if...else語句完成本題
? ? ?* 如有想看小編思路的,可以點(diǎn)擊左側(cè)任務(wù)中的“不會(huì)了怎么辦”
? ? ?* 小編還是希望大家獨(dú)立完成哦~
? ? ?*/
? ? int sum,m,i;
? ? for(m=1;m<=month;m++)
? ? { ??
? ? ? ? if(m<8)
? ? ? ? {
? ? ? ? ? ? switch(m=m%2)
? ? ? ? ? ? {
? ? ? ? ? ? ? ?case 1:i=31;
? ? ? ? ? ? ? ?break;
? ? ? ? ? ? ? ?case 0:
? ? ? ? ? ? ? ?if(m=2)
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ?i=28;
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ?else
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ?i=30;
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ?break;
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? if(8<=m<=12)
? ? ? ? {
? ? ? ? ? ? switch(m%=2)
? ? ? ? ? ? {
? ? ? ? ? ? ? ? case 1:i=30;
? ? ? ? ? ? ? ? case 0:i=31;
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? else
? ? ? ? {
? ? ? ? ? ? printf("一年只有12個(gè)月");
? ? ? ? }
? ? ? ? sum=sum+i;
? ? }
? ? if(year%4=0)
? ? {
? ? ? ? sum++;
? ? }
? ? printf("%d",sum);
? ??return 0;
}?
2015-06-19
if(8<=m<=12)你確定可以這樣而不是8<=m && m<=12
?case 1:i=30;
? case 0:i=31; ?這里的break去哪里了?
??if(m=2)?、 if(year%4=0) ? ? 判斷相等要用 ?== ? ? 這是我目測(cè)發(fā)現(xiàn)的問題,沒有仔細(xì)看代碼
2015-07-05
如果只修正其他問題,不修正閏年問題,代碼如下:
有結(jié)果,是:
一年只有12個(gè)月
一年只有12個(gè)月
一年只有12個(gè)月
一年只有12個(gè)月
一年只有12個(gè)月
一年只有12個(gè)月
一年只有12個(gè)月
248
依然不知道問題在哪兒!
2015-07-05
除了樓上指出的問題,還有以下問題:
1、case0后的if(m=2)不正確。因?yàn)榍懊嬉呀?jīng)使用了switch(m=m%2),m有了新的值,非0即1,不會(huì)再等于2了。這也是switch后面可以使用case0、case1的基礎(chǔ)。
如果想使用if(m=2),就必須在前面重新定義一個(gè)變量,來接收m%2的值。
比如,int j=m%2;
這樣就可以用switch(j)來代替switch(m=m%2)
2、sum沒有初始值,可能影響結(jié)果。(這一點(diǎn)我也不是很確定)
3、閏年的判定方法不正確。
閏年的要求是“四年一閏,百年不閏,四百年再閏”。
判斷方法是:year%4==0&&year%100!=0||year%400==0
4、把以上問題修正后,代碼依然無法執(zhí)行,不知道問題在哪兒?。?!