[問題] 變數更改後得問題

看板C_and_CPP (C/C++)作者 (ken)時間14年前 (2011/10/28 18:19), 編輯推噓0(009)
留言9則, 3人參與, 最新討論串1/1
請好心人士幫我解決這個問題,是一個關於變數的問題. #include<stdio.h> #include<stdlib.h> int main() { int input; int cnt=1; unsigned int passwd=0325; while(1){ printf("請輸入密碼:"); scanf("%d",&input); if((cnt>=1&&cnt<=2)&&(input==passwd)){ printf("密碼輸入正確,歡迎使用本系統"); break; } else{ if(cnt>=0&&cnt<=2){ cnt++; continue; } else{ printf("密碼輸入超過三次!!"); break; } } } system("pause") } 這是我自己寫的一個關於輸入四個數字的密碼程式. 我想請問一下好心人士. 可是告訴我為什麼當我把變數passwd=0325這個值的時候. 我的程式編譯後執行. 一直輸入0325這個數字. 卻一直無法跳進輸入正確指令的幾排. 直到輸入超過三次. 就跳出了程式. 但是當我把passwd=1234卻可以? 可以請教老手們.原因為何? (一個剛接觸C語言的新手.....謝謝) 補充說明(Supplement): -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.198.188.248

10/28 18:22, , 1F
數字常數用0開頭是代表這個數字是八進位表示
10/28 18:22, 1F

10/28 19:40, , 2F
用char[]就行了
10/28 19:40, 2F

10/29 14:38, , 3F
那請問十進位的方式怎麼表示?
10/29 14:38, 3F

10/29 14:40, , 4F
還有用char[]不行.
10/29 14:40, 4F

10/29 14:55, , 5F
不要寫那個0 compiler就會把它當成十進位了
10/29 14:55, 5F

10/29 14:55, , 6F
而二樓說的是把input passwd都改成char[]
10/29 14:55, 6F

10/29 14:55, , 7F
密碼就是四個字元 scanf也讀四個字元放在input
10/29 14:55, 7F

10/29 14:55, , 8F
比對個四次就知道input是不是passwd了
10/29 14:55, 8F

10/29 15:33, , 9F
謝謝你,我了解了.
10/29 15:33, 9F
文章代碼(AID): #1Ege6ar_ (C_and_CPP)
文章代碼(AID): #1Ege6ar_ (C_and_CPP)