scanf("%2d",a);现在输入876用printf输出,结果应该是87,,,而如果用pr
答案:3 悬赏:0 手机版
解决时间 2021-12-19 04:39
- 提问者网友:寂寞撕碎了回忆
- 2021-12-18 10:24
scanf("%2d ",a);现在输入876用printf输出,结果应该是87,,,而如果用printf输出int a=876,printf(" %2d ",a);则结果是876,为什么呀
最佳答案
- 五星知识达人网友:十鸦
- 2022-01-05 17:39
scanf和printf用到的%2d表达的意思并不一样。
scanf("%2d", &a)中的%2d是用来控制输入内容所占的列宽,即输入的内容只截取前两位,因此输入后a=87,输出也就是87了;
而printf("%2d",a)中的%2d是用于控制输出格式,这里的2表示输出内容至少占用两格,例如a=8的话,那输出就是_8(8前面有一个空格),如果a=87,那输出就是87,如果a是大于2位的数字,则不受%2d的控制了,按实际内容输出。
scanf("%2d", &a)中的%2d是用来控制输入内容所占的列宽,即输入的内容只截取前两位,因此输入后a=87,输出也就是87了;
而printf("%2d",a)中的%2d是用于控制输出格式,这里的2表示输出内容至少占用两格,例如a=8的话,那输出就是_8(8前面有一个空格),如果a=87,那输出就是87,如果a是大于2位的数字,则不受%2d的控制了,按实际内容输出。
全部回答
- 1楼网友:风格不统一
- 2022-01-05 20:33
scanf函数的格式问题
1. %2d 这种格式规定了输入数据长度,scanf函数会自动截取,所以x里面是12
2.%*2s %后的“*” 附加说明符,用来表示跳过它相应的数据,所以跳过了34
3. 同1 y里面是56
4. 所以 x+y是68
- 2楼网友:动情书生
- 2022-01-05 19:15
scanf函数写错了 应该是
scanf("%2d ",&a); //少个&
scanf和printf是格式化输入输出,a的长度大于%2d这个形式规定的话,2位输出是无效的,就是说a小于%后面的数字位数时才有效
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯