搜索
查看: 1689|回复: 8
打印 上一主题 下一主题

帮忙看下 是教材问题 还是我的问题?

[复制链接]
跳转到指定楼层
楼主
发表于 2013-3-21 19:54:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
int main()
{
int a,b,c;
    printf("欢迎使用我做的计算机哦,惊喜就要开始了\n");
    printf("------------------------\n");
    printf("快点输入你要计算的第一个数字(输入好了记得按回车键)\n");
    scanf("%d" ,&a);
    printf("快点输入你要计算的第二个数字(输入好了记得按回车键)\n");
    scanf("%d ",&b);
    c=a+b;
    printf("这点算术都不会算结果就是%d",c);
system("pause");
return 0;
}



为什么输入过2个数字后  必须在多输入一次数字 和回车才能计算 上面a+b的和呢???
沙发
 楼主| 发表于 2013-3-21 21:28:06 | 只看该作者
好吧 我证明了 教程的问题 出在/n  上面了
板凳
发表于 2013-3-22 01:38:23 | 只看该作者
chipplei 发表于 2013-3-21 21:28
好吧 我证明了 教程的问题 出在/n  上面了

/n? \n吧
\n不会有什么问题,容易出问题的是scanf这个函数……
地板
 楼主| 发表于 2013-3-22 10:08:00 | 只看该作者
scanf   电脑怎么确认我数值输入的结果
是自动用回车去判断输入完毕了吗?
5#
 楼主| 发表于 2013-3-22 10:08:38 | 只看该作者
但是我把\n 去掉 就OK了
6#
发表于 2013-3-22 17:38:38 | 只看该作者
chipplei 发表于 2013-3-22 10:08
但是我把\n 去掉 就OK了

你去掉了哪个\n?
7#
发表于 2013-3-23 12:14:05 | 只看该作者
本帖最后由 zynpc 于 2013-3-23 12:16 编辑

scanf("%d ",&b);多了好空格,把空格去掉就好了



但是为什么多了空格出现问题,还是得请高人啊解释
8#
发表于 2013-3-28 16:10:58 | 只看该作者
在scanf函数里空格起分隔的作用,如果有空格,机器会认为后面还有内容输入,会继续等待,当用户输入第3个数字后,机器是接受了,但没有变量存储而已。我把程序改成这样子,大家看看:
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
int main()
{
int a,b,c;
    printf("欢迎使用我做的计算机哦,惊喜就要开始了\n");
    printf("------------------------\n");
    printf("快点输入你要计算的第一个数字(输入好了记得按回车键)\n");
    scanf("%d%d " ,&a,&b);
    //printf("快点输入你要计算的第二个数字(输入好了记得按回车键)\n");
    //scanf("%d ",&b);
    c=a+b;
    printf("这点算术都不会算结果就是%d",c);
system("pause");
return 0;
}
两个连续的数字用回车结束,但如果后面有个空格,机器会还等一个数字的录入的。
9#
发表于 2013-7-22 21:24:02 | 只看该作者
{:soso_e129:}
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表