[問題] 恐怖的short int
看板C_and_CPP (C/C++)作者wemee (我不為讀者改變作風)時間14年前 (2011/08/31 21:36)推噓0(0推 0噓 19→)留言19則, 5人參與討論串1/2 (看更多)
以下使用Dev c++,編譯器為GCC 3.4.2
正常情況下
#include<stdio.h>
int main() {
int i,n,m;
while(scanf("%d",&n)!=EOF){
for(i=0;i<n;i++){
printf("i:%d\n",i);
scanf("%d",&m);
}
}
return 0;
}
執行之後
3 (鍵盤輸入,此時n為3)
i=0 (正常)
3 (鍵盤輸入,此時m為3,不重要只是Debug後留下他)
i=1 (正常)
3 (鍵盤輸入,此時m為3,不重要只是Debug後留下他)
i=2 (正常)
--------------------------------------------------
以上 完全沒問題 是正常執行的程式
但恐怖的來了
我將資料型態從int 改成 short int
如下
#include<stdio.h>
int main() {
short int i,n,m; /*僅變更此處 將int 改成 short int*/
while(scanf("%d",&n)!=EOF){
for(i=0;i<n;i++){
printf("i:%d\n",i);
scanf("%d",&m);
}
}
return 0;
}
執行之後
3 (鍵盤輸入,此時n為3)
i=0 (正常)
3 (鍵盤輸入,但沒有正常輸出i=1)
3 (鍵盤輸入)
i=0 (不知為何?)
-------------------------------------------------------------
請問short int型態有什麼魔力
可以讓原本只使用int型態的程式可以正常運作
改用short int就變得怪里怪氣
如果... 你複製以上的程式碼
在你的電腦可以正常執行
那麼我得考慮換其他版本的編譯器
或者改用別的IDE
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.131.23.176
※ 編輯: wemee 來自: 220.131.23.176 (08/31 21:37)
→
08/31 21:40, , 1F
08/31 21:40, 1F
→
08/31 21:48, , 2F
08/31 21:48, 2F
→
08/31 21:51, , 3F
08/31 21:51, 3F
→
08/31 21:54, , 4F
08/31 21:54, 4F
→
08/31 21:54, , 5F
08/31 21:54, 5F
→
08/31 21:54, , 6F
08/31 21:54, 6F
→
08/31 22:00, , 7F
08/31 22:00, 7F
→
08/31 22:01, , 8F
08/31 22:01, 8F
→
08/31 22:08, , 9F
08/31 22:08, 9F
→
08/31 22:11, , 10F
08/31 22:11, 10F
→
08/31 22:12, , 11F
08/31 22:12, 11F
→
08/31 22:12, , 12F
08/31 22:12, 12F
→
08/31 22:14, , 13F
08/31 22:14, 13F
→
08/31 22:22, , 14F
08/31 22:22, 14F
→
08/31 22:24, , 15F
08/31 22:24, 15F
→
08/31 22:29, , 16F
08/31 22:29, 16F
→
08/31 22:30, , 17F
08/31 22:30, 17F
→
08/31 22:33, , 18F
08/31 22:33, 18F
→
08/31 23:03, , 19F
08/31 23:03, 19F
討論串 (同標題文章)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章