顶聪明的芥子 发表于 2024-1-11 09:12:05

所选字符类型的长度大于所算结果的长度,却输出为0

输入128,为什么结果显示0,明明声明的时候已经用到了long long int类型

#include<stdio.h>
#include<math.h>

int main()
{
        int i;
        long long int result;
       
        printf("请输入一个整数:");
        scanf("%d",&i);   
       
        result = pow(i,5);
       
        printf("%d的五次方是:%d\n",i,result);
       
        return 0;
}

FishC 发表于 2024-1-11 09:12:10

问题出在输出的格式化字符串上。你声明了result为long long int类型,但是在printf函数中使用了%d作为格式化字符串,这会导致结果以int类型输出。要修正这个问题,你需要修改格式化字符串,用%lld代替%d。

下面是修改后的代码:

#include <stdio.h>
#include <math.h>

int main()
{
        int i;
        long long int result;
       
        printf("请输入一个整数:");
        scanf("%d",&i);   
       
        result = pow(i,5);
       
        printf("%d的五次方是:%lld\n",i,result);
       
        return 0;
}

现在,你应该可以正常输出结果了。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页: [1]
查看完整版本: 所选字符类型的长度大于所算结果的长度,却输出为0