【发布时间】:2018-02-21 14:25:02
【问题描述】:
我试图打印99,999 * 99,999 * 99,999 的结果,结果应该是999,970,000,299,999,但打印出来的是18446744072244127711。我尝试打印20000 * 20000 * 20000,结果几乎相同。你们能告诉我如何得到真正的结果吗?
#include <stdio.h>
int main()
{
int num;
printf("Insert number : ");
scanf("%ld", &num);
fflush(stdin);
unsigned long long int total = num * num * num;
printf("Result : %llu", total);
getchar();
return 0;
}
【问题讨论】:
-
scanf("%ld",&num)也是未定义的行为,因为num是int。 -
您似乎溢出了
int值。 -
你们能告诉我如何得到真正的结果 - 使用计算器吗?还是纸笔?
-
scanf("%d",&num);
标签: c