鱼C论坛

 找回密码
 立即注册
查看: 2064|回复: 5

[已解决]求助,%f为什么不能换成%d呢?

[复制链接]
发表于 2022-8-30 17:25:14 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include <stdio.h>

int main()
{
    unsigned long long i;
    double result;

    printf("请输入一个整数:");
    scanf("%d",&i);

    result = pow(i,5);

    printf("%d的五次方是:%.1f\n",i,result);

    return 0;
}
这个是打印五次方,请问最后printf里的%.1f为什么不可以换成%d呢,%d不是用来输出十进制整数的吗?
最佳答案
2022-8-30 18:45:55
本帖最后由 额外减小 于 2022-8-30 19:00 编辑

但有一种方法。
#include <stdio.h>

int main()
{
    unsigned long long i;
    double result;

    printf("请输入一个整数:");
    scanf("%d",&i);

    result = pow(i,5);

    printf("%d的五次方是:%d\n",i,(int)result);

    return 0;
}
强行用整型输出
如果,你的result不是一个整数,那就会取整

题外话
我对你声明的数据类型非常不解。
为什么你的底数要用无符号长长整型来存,这不是有点浪费空间吗

另外!
你的<math.h>忘记了,pow是定义在这个库里的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-8-30 17:49:03 | 显示全部楼层
因为 %.1f   这里的.1就代表的保留小数点后一位的意思,那么肯定不能用%d了,除非你把 %.1f 直接改为%d
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-30 18:42:58 | 显示全部楼层
result 你定义为一个双精度浮点,当然不能用整型输出了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-30 18:45:55 | 显示全部楼层    本楼为最佳答案   
本帖最后由 额外减小 于 2022-8-30 19:00 编辑

但有一种方法。
#include <stdio.h>

int main()
{
    unsigned long long i;
    double result;

    printf("请输入一个整数:");
    scanf("%d",&i);

    result = pow(i,5);

    printf("%d的五次方是:%d\n",i,(int)result);

    return 0;
}
强行用整型输出
如果,你的result不是一个整数,那就会取整

题外话
我对你声明的数据类型非常不解。
为什么你的底数要用无符号长长整型来存,这不是有点浪费空间吗

另外!
你的<math.h>忘记了,pow是定义在这个库里的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2022-8-30 19:33:37 | 显示全部楼层
非常感谢,我刚开始学习编程大概一周左右,有很多不理解的地方,现在我的问题已经解决啦,感谢你还指出了我没注意到的地方,非常感谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2022-8-30 23:16:36 | 显示全部楼层
南风知我意` 发表于 2022-8-30 19:33
非常感谢,我刚开始学习编程大概一周左右,有很多不理解的地方,现在我的问题已经解决啦,感谢你还指出了我 ...

一起努力
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-6-27 22:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表