我是初学程序员。使用Dev C ++我需要打印范围
double
,long long int
,unsigned long long int
,signed long long int
,unsigned int
,unsigned long int
。
到目前为止我已经这样做了。所有尺寸均为位。
#include <stdio.h>
#include <conio.h>
#include <math.h>
int main()
{
unsigned long int
d = pow(2, sizeof(double) * 8),
lli = pow(2, sizeof(long long int) * 8),
ulli = pow(2, sizeof(unsigned long long int) * 8),
slli = pow(2, sizeof(signed long long int) * 8),
ui = pow(2, sizeof(unsigned int) * 8),
uli = pow(2, sizeof(unsigned long int) * 8);
printf("double%d to %d", -(d / 2), (d / 2) - 1);
printf("longlongint%d to %d", -(lli / 2), (lli / 2) - 1);
printf("unsigned longlongint%d", ulli - 1);
printf("signed long longint%d to %d", -(slli / 2), (slli / 2) - 1);
printf("unsigned int%d", ui - 1);
printf("unsignedlongint%d ", uli - 1);
getch();
return 0;
}
但仍然没有打印范围...
答案 0 :(得分:3)
有符号整数的范围通常是不对称的 - 通常有一个负值而不是正值。
标头<limits.h>
定义您指定的整数类型的范围。
ULONG_MAX
ULLONG_MAX
等
标头<float.h>
定义浮点类型的范围:
DBL_MAX
DBL_MIN
等
您必须使用正确的格式说明符打印值。
答案 1 :(得分:0)
尝试在每个打印句子中添加"\n"
:
printf("double%d to %d\n",-(d/2),(d/2)-1);
printf("longlongint%d to %d\n",-(lli/2),(lli/2)-1);
printf("unsigned longlongint%d\n",ulli-1);
printf("signed long longint%d to %d\n",-(slli/2),(slli/2)-1);
printf("unsigned int%d\n",ui-1 );
printf("unsignedlongint%d\n",uli-1);
<强>更新强>
正如@Abhineet所建议的,有关缓冲流的更多信息可以帮助您,所以阅读 this SO question可能很有趣