s1e6课后作业问题
我用的kali的gcc编译,其它的都没问题,在最后一个动手时,我即使是将小甲鱼的抄下来也要这样:见图片 从图片上还是看不出来,你做的是哪一题,是 舍罕王的失算 吗? 嗯,图片是编译时的报错,百度上的看不懂:) 本帖最后由 dlrex 于 2021-1-28 01:29 编辑
用到pow正常来说要在gcc后面加 -lm 才可以输出喔,不加的话就是你的那个结果,所以正确编译代码是gcc -lm 4.c -o 4
-lm中“-”是负号 l是L的小写 dlrex 发表于 2021-1-28 01:27
用到pow正常来说要在gcc后面加 -lm 才可以输出喔,不加的话就是你的那个结果,所以正确编译代码是gcc -lm 4 ...
我照着样输了,但还是和图片一样 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;
} 本帖最后由 dlrex 于 2021-1-28 17:05 编辑
$ 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
$ vi t5.c
$ gcc -lm t5.c -o t5 && ./t5
舍罕王应该给予达依尔18446744073709551615粒麦子!
如果每25000粒麦子为1Kg,那么应该给737869762948382公斤麦子!
你看我少了-lm 的情况 和你那个差不多一样,前提是你代码没抄错
页:
[1]