[問題] c語言當機

看板C_and_CPP作者 (honamida)時間13年前 (2010/10/21 01:09), 編輯推噓3(306)
留言9則, 8人參與, 最新討論串1/1
( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 ) ( 未必需要依照此格式,文章條理清楚即可 ) 遇到的問題: (題意請描述清楚) 編譯正確但是一執行就會當機 希望得到的正確結果: 萬年曆 程式跑出來的錯誤結果: dos視窗跳出後 輸入年份完立刻跳出 程式發生問題 必須關閉 之錯誤訊息 開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux) Dev-C++ ,windows 有問題的code: (請善用置底文標色功能) #include <stdio.h> #include <stdlib.h> int main() { int year,monthDay=1,month ; printf("輸入年"); int Feb ; int week=0 ; scanf("%d",year); if(year%4==0) { week=year+year/4+year/400-year/100+monthDay-2; week=week%7; Feb=29; } if(year%4>0) { week=year+year/4+year/400-year/100+monthDay-1; week=week%7; Feb=28; } for(int i=1;i<=12;i++) { printf("%d月",i); printf(" Sun Mon Tue Wed Thu Fri Sat\n"); if(i==1 || i==3 || i==5 || i==7 || i==8 || i==10 || i==12) { for(int j=1;j<=31;j++) { if(j==1) { for(int k=0;k<week;k++) { printf(" "); } } printf("%3d",j); week=(week+1)%7 ; if(week==0 || j==31) printf("\n"); } } else if(i==4 || i==6 || i==9 || i==11) { for(int j=1;j<=30;j++) { if(j==1) { for(int k=0;k<week;k++) { printf(" "); } } printf("%3d",j); week=(week+1)%7 ; if(week==0 || j==30) printf("\n"); } } else if(i==2) { for(int j=1;j<=Feb;j++) { if(j==1) { for(int k=0;k<week;k++) { printf(" "); } } printf("%3d",j); week=(week+1)%7; if(week==0 || j==Feb) printf("\n"); } } } system("pause"); return 0 ; } 補充說明: 對不起我不會標色orz... 剛剛盯著看了快兩小時了 實在是不知道為什麼 一執行還是會當機@@ 懇請高手指點 感謝!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.116.102.131

10/21 01:09, , 1F
scanf("%d", &year); 少了 &
10/21 01:09, 1F
※ 編輯: honamida 來自: 140.116.102.131 (10/21 01:10)

10/21 01:11, , 2F
= =....居然是這個 對不起耍蠢了
10/21 01:11, 2F

10/21 01:11, , 3F
其實我覺得學 scanf 難免都會被這個問題炸一次...
10/21 01:11, 3F

10/21 01:20, , 4F
老實說我久久沒用有時也會忘記...
10/21 01:20, 4F

10/21 11:49, , 5F
這算是經典新手錯誤
10/21 11:49, 5F

10/21 14:06, , 6F
cin用的傳參考方式,比較有人性
10/21 14:06, 6F

10/21 14:11, , 7F
推... 慘痛的回憶...
10/21 14:11, 7F

10/21 14:51, , 8F
沒關係 我到現在也常不小心忘了打& XD
10/21 14:51, 8F

10/23 10:34, , 9F
何止是經典新手錯誤! 連老手也常常被這個問題炸一次...
10/23 10:34, 9F
文章代碼(AID): #1Clo8pz6 (C_and_CPP)