重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
type(数的类型)number(你要输出的数);
创新互联建站是专业的三门网站建设公司,三门接单;提供网站设计、成都网站制作,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行三门网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
printf("% +d",number)
例如
int i=-617;
printf("% +d",i);
"+"号是输出符号的
c语言%lld输出常负数:printf("%lld/n",a)。
d,lx,ld,,lu,这几个都是输出32位的。
hd,hx,hu,这几个都是输出16位数据的。
hhd,hhx,hhu,这几个都是输出8位的。
lld,ll,llu,llx,这几个都是输出64位的。
printf("%llu",.....)
%llu是64位无符号。
%llx才是64位16进制数。
%d有符号32位整数。
%u无符号32位整数。
%lld有符号64位整数。
%llx有符号64位16进制整数。
%#llx带0x的64位16进制格式输出。整型数据可以使用%d(有符号10进制)、%o(无符号8进制)或%x/%X(无符号16进制)方式输入输出。
而格式符%u,表示unsigned,即无符号10进制方式。
你的值超过int表示的最大正数了,
int类型换成unsigned
int
或者double
类型试试,输出结果的时候,不输出小数点
这个问题有多种可能,不一而足。
算法有错误,最终计算结果是负数。输出自然会是负数。
例如:
int a=1;
int b=a-2;
printf("b=%d",b);
//输出结果:b=-1
超过变量类型的最大取值范围,发生溢出。
例如Turbo C里int是16位,取值范围-32768~32767。如果计算过程当中,数值超过32767,由于补码的关系。结果就有可能是负数。这种情况,就需要使用取值范围更大的数据类型。
例程:
#includestdio.h
void main(){
int a,b,ch;
a=32767;
b=a+1;
printf("a=%d,b=%d",a,b);
ch=getch();
}
//输出结果:a=32767,b=-32768
可能的原因太多,可以肯定程序输出不在你的预想,代码有错。错误代码输出的结果没有参考性。先检查代码。
比如:
一、运算式子有没错。
二、调用了未赋值且未初始化的变量。
三、数组访问越界。
等等。