广告广告
  加入我的最爱 设为首页 风格修改
首页 首尾
 手机版   订阅   地图  繁体 
您是第 3139 个阅读者
 
发表文章 发表投票 回覆文章
  可列印版   加为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.024501 second(s),query:16 Gzip disabled
本站由 瀛睿律师事务所 担任常年法律顾问 | 免责声明 | 本网站已依台湾网站内容分级规定处理 | 连络我们 | 访客留言