标题:大家帮忙看一下 第21行为啥不加空格会错误?vc++6.0下运行 。。
只看楼主
beichei5d
Rank: 4
等 级:业余侠客
威 望:2
帖 子:89
专家分:270
注 册:2016-3-8
结帖率:100%
已结贴  问题点数:10 回复次数:4 
大家帮忙看一下 第21行为啥不加空格会错误?vc++6.0下运行 。。
# include <stdio.h>
# include <ctype.h>

int main(void)
{
    char answer = 'N';
    double total = 0.0;
    double value = 0.0;
    unsigned int count = 0;

    printf("This program calculates the average of any number of value.\n");

    for(;;)
    {
        printf("\nEnter a value: ");
        scanf("%lf", &value);
        total = total + value;
        ++count;
        printf("Do you want to enter another value? ( Y or N):");
        scanf(" %c", &answer); // 为啥 %c前面要加空格?
        if(tolower(answer) == 'n')
            break;
    }
    printf("\nThe average is %.2lf\n", total/count);
    return 0;
}
搜索更多相关主题的帖子: another average include double number 
2017-04-07 08:58
grmmylbs
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:54
帖 子:1409
专家分:5845
注 册:2016-2-14
得分:3 
scanf("%lf", &value);
这里残留了回车键
2017-04-07 09:18
beichei5d
Rank: 4
等 级:业余侠客
威 望:2
帖 子:89
专家分:270
注 册:2016-3-8
得分:0 
回复 2楼 grmmylbs
还是不理解,,我在想想。。

你现在所偷的懒,都将成为以后扇你的巴掌!共勉吧。。。
2017-04-07 10:19
韶志
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:斗气大陆
等 级:贵宾
威 望:44
帖 子:2223
专家分:13592
注 册:2013-3-22
得分:6 
scanf 输入字符回车后,产生的\n 也会停留在输入缓冲区中,下次调用 scanf 时就会直接读到这个'\n',而不是等待你再次输入

可以在scanf() 后面来个 getchar();  或者  scanf(" %c", &answer); // 为啥 %c前面要加空格?   加空格就是为了抵消那个'\n'

参考下这个帖子吧https://bbs.bccn.net/viewthread.php?tid=475605&page=1#pid2621787
收到的鲜花
  • missERR2017-04-07 10:35 送鲜花  3朵   附言:我很赞同

三十年河东,三十年河西,莫欺少年穷!
2017-04-07 10:33
Emotiona
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:311
专家分:581
注 册:2017-3-7
得分:1 
百度下。scanf陷阱。讲的很细
2017-04-07 11:58



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-475855-1-1.html




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

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