看板 C_and_CPP 關於我們 聯絡資訊
問題:定義一組密碼(四個數字),使用者有三次輸入的機會, 輸入錯誤會從螢幕印出錯誤訊息 程式碼: #include<stdio.h> #define code 0608 int main(void){ int flag=0; int password; printf("%d\n",code); do { printf("輸入一組密碼(四位數)\n"); scanf("%d",&password); if(flag==3){ printf("超過%d次,您已被鎖卡\n",flag); return 0 ; } else if(password==code){ printf("登錄成功\n"); printf("%d\n",code); } flag=flag+1; }while(password!=code); return 0; } 為何define出現了 illegal digit '8' for base '8' 的訊息 那要怎麼修正呢? 將其宣告為字串型態嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 120.101.8.91
james732:0開頭的會被當作8進位 04/12 11:20
james732:改成 #define code 608 就可以了 04/12 11:23
qoo200033:那如果要以0 開頭呢 04/12 11:52
nowar100:當字串 04/12 11:54
loveme00835:誰教你巨集常數要用小寫? = =" 04/12 12:02
xatier:巨集請用**大寫**!! 04/12 12:47
tropical72:0開頭表示八進制,所以你的表示完全不合理!因8進不能有 04/12 13:19
tropical72:8, printf("%d\n", 12); 結果會是 10.所以不用前導0 04/12 13:20
tropical72:修樓上,是 printf("%d",012); 結果是10 04/12 13:20