z14928541 发表于 2018-12-11 21:57:56

自己写了代码!编译后没结果,看答案后照抄编译错误!找半天看不出来!

自己写了代码!编译后没结果,看答案后照抄编译错误!找半天看不出来!

ba21 发表于 2018-12-11 22:17:57

参考

https://www.cnblogs.com/52php/p/5681100.html

z14928541 发表于 2018-12-11 22:40:48

加了-lm可以编译了·但是数据显示不正确??

丶忘却的年少o 发表于 2018-12-12 09:55:22

改完之后重新编译生成新文件了嘛?那个程序我运行了下是对的

刘邦 发表于 2018-12-12 16:00:48

可以编译以后你把 weight,和temp的值先附0,试一下

cc1003894 发表于 2018-12-12 16:58:29

编译的时候把运行窗口关了再编译,有时候编译不通过是因为程序在运行造成的

z14928541 发表于 2018-12-12 21:44:19

现在是可以编译,编译的时候加-lm就可以编译了·但是数据溢出了。我显示不了这么多位数字!

TCY 发表于 2018-12-13 12:08:47

这样?那你试试把long long改为bigint
你也可以试试double

TCY 发表于 2018-12-13 12:11:10

你把执行结果拿出来

TCY 发表于 2018-12-13 12:40:21

#include<stdio.h>

int main()
{
        unsigned long long temp = 1;
        unsigned long long sum = 0;
        float weight;
        for(int i=0; i<64; i++)
        {
                sum+=temp;
                temp *= 2;
        }
        weight = sum / 25000.0;
        //我就不输打印的中文了,只打印数字
        printf("%llu\n", sum);
        printf("%llu\n"), weight);
        return 0;
}

z14928541 发表于 2018-12-13 21:42:28

我把程序改了,这个打印我的程序编译数据很早就溢出了·但是 unsigned long long 不是8个字节吗?可以存20位数字吗?我只能存放10位就满了?是什么问题?

z14928541 发表于 2018-12-13 21:43:13

TCY 发表于 2018-12-13 12:40


这个代码我编译不通过!{:5_99:}

z14928541 发表于 2018-12-13 21:51:36

丶忘却的年少o 发表于 2018-12-12 09:55
改完之后重新编译生成新文件了嘛?那个程序我运行了下是对的

我重新新建一个.C文件,重新抄写,然后现在结果在很早的时候就溢出了·我的数值只能显示10位数!

丶忘却的年少o 发表于 2018-12-14 09:31:54

z14928541 发表于 2018-12-13 21:51
我重新新建一个.C文件,重新抄写,然后现在结果在很早的时候就溢出了·我的数值只能显示10位数!

我是VS运行的,没问题。不过我看了pow函数定义,好像是返回double类型。你在pow前面强转一下:
tmp = (unsigned long long)pow(2, i);
要是还不行我也不知道了……

TCY 发表于 2018-12-15 17:43:40

丶忘却的年少o 发表于 2018-12-14 09:31
我是VS运行的,没问题。不过我看了pow函数定义,好像是返回double类型。你在pow前面强转一下:

要是还 ...

绝对没问题!

丶忘却的年少o 发表于 2018-12-15 19:33:52

TCY 发表于 2018-12-15 17:43
绝对没问题!

我也这么觉得。只是楼主很着急{:10_334:}

fsd82ht 发表于 2018-12-16 21:27:34

测一下sizeof(sum)你电脑上是多少字节。

z14928541 发表于 2018-12-16 23:47:01

成功了!重点是改了%llu.   原来是%11u就可以了
页: [1]
查看完整版本: 自己写了代码!编译后没结果,看答案后照抄编译错误!找半天看不出来!