标题:刚开始学,请多多指教
只看楼主
huyvht
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2020-10-17
结帖率:75%
已结贴  问题点数:20 回复次数:5 
刚开始学,请多多指教

请问到底是哪里出错了?
搜索更多相关主题的帖子: 出错 多多 
2020-10-17 21:28
风过无痕1989
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:8
帖 子:228
专家分:1050
注 册:2020-7-17
得分:10 
回复 楼主 huyvht
scanf()语句中除控制字符外,任何字符都不要加,输入时以空格隔开就好。你原程序就是因为中间有一个逗号,并将这个逗号赋给了变量b
#include<stdio.h>
int main()
{
    int a,b;
    scanf("%d%d",&a,&b);
    printf("%d",a + b);
    return 0;
}
2020-10-17 22:21
qpmhhh
Rank: 2
等 级:论坛游民
帖 子:6
专家分:30
注 册:2020-9-20
得分:10 
回复 楼主 huyvht
#include<stdio.h>
你的"."和"h"间多了个空格
2020-10-18 08:26
尔二
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2020-10-19
得分:0 
回复 2楼 风过无痕1989
那个逗号啊,怎么附给b了啊,我刚学,不懂,求解
2020-10-19 18:23
风过无痕1989
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:8
帖 子:228
专家分:1050
注 册:2020-7-17
得分:0 
回复 4楼 尔二
首先要弄清楚的是:scanf() 读取键盘输入并非是键盘敲一个就读一个,而是当按下回车后就将控制台的字符写到缓冲区里,scanf再从缓冲区里一次只读一个字符地读取全部键盘输入的字符,赋给对应的变量(你输入时,数据中夹带逗号等其他非数据字符,计算机可不认识它是不是数据,会原样地赋给变量),缓冲区没数据时scanf就等待用户的输入。比如从键盘输入 123,它表示的并不是数字 123,而是字符 '1'、字符 '2' 和字符 '3'。

操作系统在接收键盘数据时都将它当成字符来接收的。这时就需要用“输入控制符”将它转化一下。%d的含义就是要将从键盘输入的这些合法的字符转化成一个十进制数字。经过 %d 转化完之后,字符 123 就是数字 123 了。

第二个要弄清楚的是:&是一个取地址运算符,&后面加变量名表示“该变量的地址”,所以&i就表示变量 i 的地址。&i又称为“取地址i”,就相当于将数据存入以变量 i 的地址为地址的变量中。

scanf 的使用小结:
1 在 scanf 的“输入参数”中,变量前面的取地址符&不要忘记。
2 scanf 中双引号内,除了“输入控制符”外什么都不要写。
3 “输出控制符”和“输出参数”无论在“顺序上”还是在“个数上”一定要一一对应。
4 “输入控制符”的类型和变量所定义的类型一定要一致。对于从键盘输入的数据的类 型,数据是用户输入的,程序员是无法决定的,所以在写程序时要考虑容错处理。
5 使用 scanf 之前先用 printf 提示输入。
2020-10-19 19:09
huyvht
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2020-10-17
得分:0 
谢谢大神们 明白了
2020-10-19 22:44



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




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

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