printf("% +d",number)
例如
int i=-617
printf("% +d",i)
"+"号是输出符号的
这个问题有多种可能,不一而足。
算法有错误,最终计算结果是负数。输出自然会是负数。
例如:
int a=1int b=a-2
printf("b=%d",b)
//输出结果:b=-1
超过变量类型的最大取值范围,发生溢出。
例如Turbo C里int是16位,取值范围-32768~32767。如果计算过程当中,数值超过32767,由于补码的关系。结果就有可能是负数。这种情况,就需要使用取值范围更大的数据类型。
例程:
#include<stdio.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