| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 547 人关注过本帖
标题:这段代码关于while循环的问题,输出和输入对不上
只看楼主 加入收藏
君莫邪之
Rank: 1
等 级:新手上路
帖 子:6
专家分:4
注 册:2013-5-7
结帖率:0
收藏
已结贴  问题点数:5 回复次数:5 
这段代码关于while循环的问题,输出和输入对不上
程序代码:
#include
void main()
{
    int i=0;
    int j=0;
    char  sh[5];
    printf("input\n");
    while(i++<6)
    scanf("%c",&sh[i]);
    while(j++<6)
    printf("%c",sh[j]);


}
2013-05-26 22:04
韶志
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:斗气大陆
等 级:贵宾
威 望:44
帖 子:2223
专家分:13592
注 册:2013-3-22
收藏
得分:2 
#include<stdio.h>

void main()
{
    int i=0;
    int j=0;
    char  sh[5];
    printf("input\n");
    while(i++<6)
    {
        scanf("%c",&sh[i]);
       fflush(stdin);  //加上这个  清空缓冲区,不然你的回车键会键入数组
    }
    while(j++<6)
    printf("%c",sh[j]);

}

三十年河东,三十年河西,莫欺少年穷!
2013-05-26 22:13
lzj12530
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:2
帖 子:264
专家分:841
注 册:2013-3-28
收藏
得分:2 
你漏了头文件吧

C++菜鸟
2013-05-26 22:15
dzzgml
Rank: 2
等 级:论坛游民
帖 子:18
专家分:44
注 册:2012-7-20
收藏
得分:2 
我测试对的上号,但是就是比原来要少两个字符。应为scanf()函数在每次接受一个函数时会输出一个换行符。。。
2013-05-26 22:16
lzj12530
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:2
帖 子:264
专家分:841
注 册:2013-3-28
收藏
得分:0 
楼上所的不错,而且while(j++<6)和while(i++<6)两句会导致越界访问,所以会出错。J++<6//如果j=4 这一句通过之后j=5,但是下一句j scanf("%c",&sh[i]);就会出现sh[5]就会越界,更别说j=5了。
建议你改成

#include<stdio.h>

 void main()
 {
     int i=0;
     int j=0;
     char  sh[5];
     printf("input\n");
     while(i<5)    //保证数组不越界
     {
         scanf("%c",&sh[i]);
         fflush(stdin);  // 清空缓冲区,不然你的回车键会键入数组
         i++;
     }
     while(j<5)  //保证数组不越界
       {
           printf("%c",sh[j]);
           j++;
        }
     scanf("%d",i)
}

C++菜鸟
2013-05-26 22:23
海上钢琴师
Rank: 2
等 级:论坛游民
帖 子:24
专家分:46
注 册:2013-4-18
收藏
得分:2 
我改了一下你的代码(你的代码风格不好。。。= =)
程序代码:
#include<stdio.h>
int main()
{
    int   i;
    char  sh[10];
    printf("input\n");
    for(i=0; i<6; i++)
    {
        if(i==5||i==4)
        scanf("%c",&sh[i]);
        else
        scanf("%c%*c",&sh[i]);
    }
    for(i=0; i<6; i++)
    {
        printf("%c ",sh[i]);
    }

    return 0;
}

 

天行健!君子以自强不息;地势坤!君子以厚德载物。
2013-05-26 22:26
快速回复:这段代码关于while循环的问题,输出和输入对不上
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.033269 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved