永发信息网

大一c程序设计

答案:5  悬赏:0  手机版
解决时间 2021-07-29 00:25
  • 提问者网友:箛茗
  • 2021-07-28 15:31
#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 表示长整形数,希望可以完整地回答整个问题~结果是怎样?为什么?谢谢~
最佳答案
  • 五星知识达人网友:夜余生
  • 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:按十进制整型数据的实际长度输出.

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯