C语言中scanf函数的输入格式

程序如下:main(){intx,y,z;scanf("%d%d%d",&x,&y,&z);printf("%d\n",x+y+z);}输入:25,13,,10输出为什么... 程序如下: main() { int x,y,z; scanf("%d%d%d",&x,&y,&z); printf("%d\n",x+y+z); } 输入:25,13,,10 输出为什么是3278? 各位,我知道正确的格式,我是想知道为什么是3278,我换输入:0,0,0,就是3253了.也就是这个数字是怎么来的,我用的是Turbo c 2.0,也就是想知道,带逗号后的这个输出数字是如何得到的.为什么是这个数字?谢谢! 展开
 我来答
旅游路上小知识
高粉答主

2021-10-16 · 我是旅行小达人,专注解决旅行中遇到的问题
旅游路上小知识
采纳数:2 获赞数:83078

向TA提问 私信TA
展开全部

scanf函数是c语言中输入函数的一种,将用户从键盘输入的文本转换为对应的值存储起来,下面请看详细的教程。

1、首先在主函数中定义一个变量age,类型为int类型。

2、接着用printf函数给出相应的提示—“please enter your age”。

3、使用scanf函数,将用户输入的内容存储到age这个变量,注意在变量要加上&,如果是字符数组则不用加。

4、这时将这个变量的值打印出来,也就是用户输入的内容打印出来。

5、最后右键单击,在弹出的菜单中点击“run code”。查看运行结果,就完成了。

郸娜游春娇
2019-06-05 · TA获得超过5101个赞
知道大有可为答主
回答量:3023
采纳率:32%
帮助的人:172万
展开全部
因为你的scanf函数中的格式与输入的格式不对,即
scanf("%d%d%d",&x,&y,&z);这句中格式应该与后面的变量一致,三个%d之间要加逗号,改为scanf("%d,%d,%d",&x,&y,&z);改成这样结果就是对的,而是你那样的做法,相当于变量x,y,z没有初始化,所以结果是一个随机数。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
尔骏腾琴心
2019-05-30 · TA获得超过4062个赞
知道大有可为答主
回答量:3181
采纳率:27%
帮助的人:221万
展开全部
按照25,13,,10
这样的输入方式,实际上只是对x进行了赋值,值为25.
而y和z会在x的地址处,分别向下偏移4个字节进行取值。
这样就会造成了你上面的结果。
你可以把x、y和z的地址打出来,试试看。
int
main(int
argc,
char*
argv[])
{
int
x,y,z;
scanf("%d%d%d",&x,&y,&z);
printf("%d\n",x+y+z);
printf("%d\n",x);
printf("%d\n",y);
printf("%d\n",z);
printf("%d\n",&x);
printf("%d\n",&y);
printf("%d\n",&z);
return
0;
}
希望可以帮到你。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
玄芮雅80
2020-11-14
知道答主
回答量:4
采纳率:0%
帮助的人:789
展开全部
这个问题实际上意义不大,%d之间无空格,输入时可以用空格键隔开或者Tab键,但是像这样scanf("%d,!%d**%d",&a, &b, &c),那你输入时,应该这样输入23,!-56**678
这样输入a,b,c的值就分别是23,-56,678。楼上那位有一点错误,scanf("%d,!%d**%d",&a, &b, &c),%d之间间隔符号没必要和&a,&b,&c一样 我这样写也是可以的,但是这是为了区分,没有谁闲着没事写成这样子。我用的是codeblocks
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式