printf
本帖最后由 CaptainBiken 于 2020-8-14 14:57 编辑#include <stdio.h>
#include <math.h>
int main()
{
int i;
double result;
printf("请输入一个整数:");
scanf("%d", &i);
result = pow(i, 5);
printf("%d的五次方是:%.2f\n", i, result);
return 0;
}
为什么把result改成i*i*i*i*i,结果变成了0.00?
求助大佬~ 你说的是 i 吧……
因为 i 是 int 类型,128 * 128 * 128 * 128 * 128 已经超出 int 类型能够表示的最大值了,所以会溢出,最后结果为 0 zltzlt 发表于 2020-8-14 11:34
你说的是 i 吧……
因为 i 是 int 类型,128 * 128 * 128 * 128 * 128 已经超出 int 类型能够表示的最大 ...
感谢大佬
不过我前面的占位符还是%.2f,不是%d啊,为什么最后还是会溢出呢?难道这个是看i的数据类型吗{:5_107:}
麻烦大佬再解释下~ CaptainBiken 发表于 2020-8-14 15:01
感谢大佬
不过我前面的占位符还是%.2f,不是%d啊,为什么最后还是会溢出呢?难道这个是看i的数据类型吗{ ...
128 * 128 * 128 * 128 * 128 这一步就已经溢出了,转化为 double 也没用 zltzlt 发表于 2020-8-14 15:06
128 * 128 * 128 * 128 * 128 这一步就已经溢出了,转化为 double 也没用
懂了 感谢大佬{:5_110:}
页:
[1]