廣告廣告
  加入我的最愛 設為首頁 風格修改
首頁 首尾
 手機版   訂閱   地圖  簡體 
您是第 3121 個閱讀者
 
發表文章 發表投票 回覆文章
  可列印版   加為IE收藏   收藏主題   上一主題 | 下一主題   
csr
個人文章 個人相簿 個人日記 個人地圖
小有名氣
級別: 小有名氣 該用戶目前不上站
推文 x0 鮮花 x898
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片
推文 x0
[C/C++][求助] 請教為何紅色部份不執行
#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)           ..

訪客只能看到部份內容,免費 加入會員 或由臉書 Google 可以看到全部內容



獻花 x0 回到頂端 [樓 主] From:臺灣中華電信股份有限公司 | Posted:2011-06-28 20:47 |
ebolaman 手機 會員卡
個人文章 個人相簿 個人日記 個人地圖
特殊貢獻獎

級別: 副版主 該用戶目前不上站
版區: 程式設計
推文 x38 鮮花 x458
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

修正成這樣就行了:

複製程式
#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;}

也可以將 < 改成 <= 即可解決,但以迴圈的意義上來看,這樣不太好,有點多跑一點的感覺






[ 此文章被ebolaman在2011-06-29 14:12重新編輯 ]

此文章被評分,最近評分記錄
財富:50 (by 三仙) | 理由: ^^ 因為您的參與,讓程式設計更容易!!


My BOINC stats :

獻花 x1 回到頂端 [1 樓] From:台灣寬頻通訊顧問股份有限公司 | Posted:2011-06-28 22:49 |
csr
個人文章 個人相簿 個人日記 個人地圖
小有名氣
級別: 小有名氣 該用戶目前不上站
推文 x0 鮮花 x898
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

原來是這樣

還是學藝不精
非常感謝大大清楚說明
小弟心領了謝謝
不過
當小弟打超過四位時
程式也還是沒執行此行喔
printf("\n輸入太多位數!!\n");


獻花 x0 回到頂端 [2 樓] From:局域網對方和您在同一內部網 | Posted:2011-06-29 14:03 |
ebolaman 手機 會員卡
個人文章 個人相簿 個人日記 個人地圖
特殊貢獻獎

級別: 副版主 該用戶目前不上站
版區: 程式設計
推文 x38 鮮花 x458
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

下面是引用 csr 於 2011-06-29 14:03 發表的 : 到引言文
原來是這樣

還是學藝不精
非常感謝大大清楚說明
小弟心領了謝謝
不過
當小弟打超過四位時
程式也還是沒執行此行喔
printf("\n輸入太多位數!!\n");


呵呵被你發現了

因為我不是用 Dev C++ 編輯的,因此 就算 return 0 後還是會停留在 Console 介面,Dev C++ 就會直接關閉視窗

在  printf("\n輸入太多位數!!\n");   底下補一行就行了: system("pause");


My BOINC stats :

獻花 x1 回到頂端 [3 樓] From:台灣寬頻通訊顧問股份有限公司 | Posted:2011-06-29 14:08 |
csr
個人文章 個人相簿 個人日記 個人地圖
小有名氣
級別: 小有名氣 該用戶目前不上站
推文 x0 鮮花 x898
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

下面是引用 ebolaman 於 2011-06-29 14:08 發表的 : 到引言文



呵呵被你發現了

因為我不是用 Dev C++ 編輯的,因此 就算 return 0 後還是會停留在 Console 介面,Dev C++ 就會直接關閉視窗

在  printf("\n輸入太多位數!!\n");   底下補一行就行了: system("pause");

原來還有分編譯器
小弟終於弄懂了
大大
真是太感謝您了
謝謝


獻花 x0 回到頂端 [4 樓] From:臺灣中華電信股份有限公司 | Posted:2011-06-29 20:44 |

首頁  發表文章 發表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.019201 second(s),query:16 Gzip disabled
本站由 瀛睿律師事務所 擔任常年法律顧問 | 免責聲明 | 本網站已依台灣網站內容分級規定處理 | 連絡我們 | 訪客留言