| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 536 人关注过本帖
标题:为什么两个程序的输出结果不同?
只看楼主 加入收藏
夏日清风
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:71
专家分:126
注 册:2010-4-16
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:6 
为什么两个程序的输出结果不同?
比如我输入abc,第一个程序的输出结果为abc,而第二个程序的输出结果为ab,请问为什么会这样,难道这两个程序有什么不同吗?
#include<stdio.h>
void main()
{
    char s[100],st2[100];
    int i,m,n=3;//为何此时输出是正确的
    printf("请输入数组长度:");
    printf("输入字符");
    for(i=0;i<n;i++)
        scanf("%c",&s[i]);
    for(i=0;i<n;i++)
        printf("%c",s[i]);
}
 


#include<stdio.h>
void main()
{
    char s[100],st2[100];
    int i,m,n;
    printf("请输入数组长度:");
    scanf("%d",&n);//当此处输入3时,为什么输出反而不正确。
    printf("输入字符");
    for(i=0;i<n;i++)
        scanf("%c",&s[i]);
    for(i=0;i<n;i++)
        printf("%c",s[i]);
}
搜索更多相关主题的帖子: 结果 输出 
2010-05-24 15:59
ww稻草人
Rank: 5Rank: 5
来 自:陕西西安
等 级:职业侠客
帖 子:57
专家分:309
注 册:2010-5-11
收藏
得分:10 
在第二个程序的 printf("输入字符");之前加个flushall();,很可能最后电脑把你上次输入的回车当做一个字符赋给了s[0],以后输入字符的时候最好每次输入前加个flushall();,那样不容易出错。

我的博客  http://blog..cn/daocaoren020
2010-05-24 16:19
hanzhenddd
Rank: 5Rank: 5
等 级:职业侠客
帖 子:90
专家分:361
注 册:2010-3-4
收藏
得分:10 
连续scanf 会吃回车.

字符串用fgets 或者gets读入.
2010-05-24 16:24
夏日清风
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:71
专家分:126
注 册:2010-4-16
收藏
得分:0 
回复 2楼 ww稻草人
太感谢了,请问你怎么知道要加这个,我没看到过呀?
2010-05-24 16:25
ww稻草人
Rank: 5Rank: 5
来 自:陕西西安
等 级:职业侠客
帖 子:57
专家分:309
注 册:2010-5-11
收藏
得分:0 
我们以前老师说过,但我没好好听,具体为什么只知道个大概,但我记得只要你想连续输入字符或字符串就得注意那个情况,你以后编程时注意那就行了。

我的博客  http://blog..cn/daocaoren020
2010-05-24 17:08
夏日清风
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:71
专家分:126
注 册:2010-4-16
收藏
得分:0 
回复 5楼 ww稻草人
好的,记下了,谢谢!
2010-05-24 17:28
lxqq1000
Rank: 2
等 级:论坛游民
帖 子:23
专家分:30
注 册:2010-5-19
收藏
得分:0 
直接在输入3abc也行
2010-05-24 19:13
快速回复:为什么两个程序的输出结果不同?
数据加载中...
 
   



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

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