引用 | 編輯
csr
2011-06-28 20:47 |
樓主
▼ |
||
x0
#include<stdio.h>#include<stdlib.h> #include<conio.h> int main(void) { char get; int i=0; printf("請輸入密碼:"); for(i=0;i<5;i++) { if(i==5) .. 訪客只能看到部份內容,免費 加入會員 x0
|
引用 | 編輯
ebolaman
2011-06-28 22:49 |
1樓
▲ ▼ |
修正成這樣就行了:
複製程式 #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <time.h> int main() { char get[5]; int i=0; printf("請輸入密碼:(最多4位)\n"); for(i=0;i<=5;i++) { if(i==5) { printf("\n輸入太多位數!!\n"); system("pause"); return 0; } get[i]=getch(); if(get[i]==13 || get[i]==10) //If user inputs return key break; printf("*"); } printf("\n你輸入的密碼為:"); for(i=0;i<5;i++) printf("%c",get[i]); printf("\n"); //Pause system("pause"); return 0; } 我看到的問題: (1) 檢查程序放在 "輸入完" 後會比較洽當 (2) for 在 i 值為 5 時就跳出 for(i=0;i<5;i++){} 的迴圈,因此不會執行到 if(i+1==5){printf("\n輸入太多位數!!");return 0;} 也可以將 < 改成 <= 即可解決,但以迴圈的意義上來看,這樣不太好,有點多跑一點的感覺 x1 |
引用 | 編輯
csr
2011-06-29 14:03 |
2樓
▲ ▼ |
原來是這樣
唉 還是學藝不精 非常感謝大大清楚說明 小弟心領了謝謝 不過 當小弟打超過四位時 程式也還是沒執行此行喔 printf("\n輸入太多位數!!\n"); x0 |