鱼C论坛

 找回密码
 立即注册
查看: 923|回复: 6

[已解决]s1e6课后作业问题

[复制链接]
发表于 2021-1-26 20:19:39 From FishC Mobile | 显示全部楼层 |阅读模式

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

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

x
我用的kali的gcc编译,其它的都没问题,在最后一个动手时,我即使是将小甲鱼的抄下来也要这样:
见图片
最佳答案
2021-1-28 17:04:07
本帖最后由 dlrex 于 2021-1-28 17:05 编辑

[fishc@localhost s1e6]$ gcc t5.c -o t5
/tmp/ccud7G13.o: In function `main':
t5.c:(.text+0x35): undefined reference to `pow'
collect2: ld returned 1 exit status
[fishc@localhost s1e6]$ vi t5.c
[fishc@localhost s1e6]$ gcc -lm t5.c -o t5 && ./t5
舍罕王应该给予达依尔18446744073709551615粒麦子!
如果每25000粒麦子为1Kg,那么应该给737869762948382公斤麦子!

你看我少了-lm 的情况 和你那个差不多一样,前提是你代码没抄错
1611663550395.jpg
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-1-26 21:07:14 | 显示全部楼层
从图片上还是看不出来,你做的是哪一题,是 舍罕王的失算 吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-27 11:25:44 From FishC Mobile | 显示全部楼层
嗯,图片是编译时的报错,百度上的看不懂:)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-28 01:27:23 | 显示全部楼层
本帖最后由 dlrex 于 2021-1-28 01:29 编辑

用到pow正常来说要在gcc后面加 -lm 才可以输出喔,不加的话就是你的那个结果,所以正确编译代码是gcc -lm 4.c -o 4
-lm中“-”是负号 l是L的小写
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-28 13:41:04 | 显示全部楼层
dlrex 发表于 2021-1-28 01:27
用到pow正常来说要在gcc后面加 -lm 才可以输出喔,不加的话就是你的那个结果,所以正确编译代码是gcc -lm 4 ...

我照着样输了,但还是和图片一样
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-28 13:57:04 | 显示全部楼层
lin5720qwq 发表于 2021-1-27 11:25
嗯,图片是编译时的报错,百度上的看不懂:)

感觉你缺少了 math.h 这个头函数及主函数 main() 的类型,系统默认其为 int 类型
#include <stdio.h>
#include <math.h>                         // 因为下面要用到 pow() 函数,math.h 就是它的头函数

int main()                                       // main() 的类型为 int
{
        unsigned long long sum = 0;
        unsigned long long temp;
        unsigned long long weight;
        int i;

        for (i=0; i < 64; i++)
        {
                temp = pow(2, i);           // pow() 函数求 2 的 i 次方
                sum = sum + temp;       // 累加每一次 i 的变化所求的值
        }

        weight = sum / 25000;           // 每 25000 颗的重量为 1 公斤

        printf("舍罕王应该给予达依尔%llu粒麦子!\n", sum);
        printf("如果每25000粒麦子为1kg,那么应该给%llu公斤麦子!\n", weight);

        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-28 17:04:07 | 显示全部楼层    本楼为最佳答案   
本帖最后由 dlrex 于 2021-1-28 17:05 编辑

[fishc@localhost s1e6]$ gcc t5.c -o t5
/tmp/ccud7G13.o: In function `main':
t5.c:(.text+0x35): undefined reference to `pow'
collect2: ld returned 1 exit status
[fishc@localhost s1e6]$ vi t5.c
[fishc@localhost s1e6]$ gcc -lm t5.c -o t5 && ./t5
舍罕王应该给予达依尔18446744073709551615粒麦子!
如果每25000粒麦子为1Kg,那么应该给737869762948382公斤麦子!

你看我少了-lm 的情况 和你那个差不多一样,前提是你代码没抄错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-15 04:13

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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