#include "stdio.h"
void main()
{long m,n;
m=30000;n=50000;
printf("m=%10ld,n=%ld\n",m,n);}
将最后一行改为:
printf(“m=%10d,n=%d\n”,m,n);
再运行,结果如何,为什么?
我知道ld 表示长整形数,希望可以完整地回答整个问题~结果是怎样?为什么?谢谢~
大一c程序设计
答案:5 悬赏:0 手机版
解决时间 2021-07-29 00:25
- 提问者网友:箛茗
- 2021-07-28 15:31
最佳答案
- 五星知识达人网友:夜余生
- 2021-07-28 17:06
首先,我推荐这位朋友可以仔细的看一下书,学C语言主要在于仔细,你说的问题在格式输出那里有
接着,你的问题:
1.%md或%mld主要是用于格式规范 由用户自己控制输出的长度 你的输出时6个空格然后30000,50000
修改后
2.你的2个东西输出是不一样的,如果你是用的是TurboC编辑 因为C语言里定义整形是-32768至32767
所以是六个空格30000,后面这个就溢出了
3.但是如果你用VC++6.0编程,自动默认为C++语言,而C++中整形的范围是-2147483647到2147483647
所以还是6个空格30000,50000
4.C++中short int的范围才是C中int的范围
5.问题就出在这里 是编译工具的问题
最后,祝学习顺利
全部回答
- 1楼网友:时间的尘埃
- 2021-07-28 21:41
一样的,%d表示整型,在VC6.0里整型是32位的,long和int其实是一样的。
- 2楼网友:鸽屿
- 2021-07-28 20:12
结果一样,%10ld或%10d里,10代表字段宽度为10,如果输出的是a=1234.1234,那么输出
a=[空格]1234.1234,你数数一共十个字符,如果a=12,则a=[八个空格]12
- 3楼网友:忘川信使
- 2021-07-28 18:33
如果改了的话 程序可能不执行 即使能执行那么输出的数也不可预料 因为%d只能输出-32768至32767之间的数
- 4楼网友:舊物识亽
- 2021-07-28 18:12
结果是: 30000,50000
%10d:如果数据的位数小于10,则左端补以空格,然后输出数据.若数据的位数大于10,则数据按实际长度输出.
%d:按十进制整型数据的实际长度输出.
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯