清芷在沅湘 发表于 2021-7-6 10:56:41

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;
}

为什么这些代码输出的结果是负数?

shriek 发表于 2021-7-6 11:07:35

long型变量数据范围为-2147483648~2147483647,128的五次方为34359738368,超过long的范围了。
咳应该是这样吧?我也新手在学。

shriek 发表于 2021-7-6 11:14:54

蹲个答案

shriek 发表于 2021-7-6 11:26:34

问过老师了,数据溢出之后没有价值,论坛老哥也说,没有价值无需研究。就是单纯数据超出范围。

清芷在沅湘 发表于 2021-7-6 13:55:55

shriek 发表于 2021-7-6 11:26
问过老师了,数据溢出之后没有价值,论坛老哥也说,没有价值无需研究。就是单纯数据超出范围。

是的谢谢你的解答我也问过我老师了 的确是溢出了 我一直以为long 比int的区间更大

shriek 发表于 2021-7-6 14:01:21

清芷在沅湘 发表于 2021-7-6 13:55
是的谢谢你的解答我也问过我老师了 的确是溢出了 我一直以为long 比int的区间更大

long 就是比int大。你这里要用long long

清芷在沅湘 发表于 2021-7-6 14:21:38

shriek 发表于 2021-7-6 14:01
long 就是比int大。你这里要用long long

long 与 int 的大小区间要根据环境来决定的 我用的是32位的 所以 long 和 int 区间是一样的

shriek 发表于 2021-7-6 14:36:28

清芷在沅湘 发表于 2021-7-6 14:21
long 与 int 的大小区间要根据环境来决定的 我用的是32位的 所以 long 和 int 区间是一样的

好的我学到了。我的系统 long 比int 大
页: [1]
查看完整版本: S1E7课后作业求助