S1E7课后作业求助
#include <stdio.h>#include <stdlib.h>
#include <math.h>
int main()
{
int n;
long result;
scanf("%d",&n);
printf("请输入一个整数:%d\n",n);
result = pow(n,5);
printf("%d的五次方是:%d",n,result);
return 0;
}
为什么这些代码输出的结果是负数? long型变量数据范围为-2147483648~2147483647,128的五次方为34359738368,超过long的范围了。
咳应该是这样吧?我也新手在学。 蹲个答案 问过老师了,数据溢出之后没有价值,论坛老哥也说,没有价值无需研究。就是单纯数据超出范围。 shriek 发表于 2021-7-6 11:26
问过老师了,数据溢出之后没有价值,论坛老哥也说,没有价值无需研究。就是单纯数据超出范围。
是的谢谢你的解答我也问过我老师了 的确是溢出了 我一直以为long 比int的区间更大 清芷在沅湘 发表于 2021-7-6 13:55
是的谢谢你的解答我也问过我老师了 的确是溢出了 我一直以为long 比int的区间更大
long 就是比int大。你这里要用long long shriek 发表于 2021-7-6 14:01
long 就是比int大。你这里要用long long
long 与 int 的大小区间要根据环境来决定的 我用的是32位的 所以 long 和 int 区间是一样的 清芷在沅湘 发表于 2021-7-6 14:21
long 与 int 的大小区间要根据环境来决定的 我用的是32位的 所以 long 和 int 区间是一样的
好的我学到了。我的系统 long 比int 大
页:
[1]