鱼C论坛

 找回密码
 立即注册
查看: 1520|回复: 3

[吹水] 来自小白的问题

[复制链接]
发表于 2019-8-12 11:17:03 From FishC Mobile | 显示全部楼层 |阅读模式

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

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

x
为啥二次方时候可以,五次方不可以呢?而是要像第五张图一样再定义一个变量?图三定义的long long int 感觉明明可以塞得下,但是出来结果就是不对?
来自: 微社区

113593

113593

113594

113594

113595

113595

113596

113596

113597

113597
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-8-12 11:59:42 | 显示全部楼层
本帖最后由 迷雾少年 于 2019-8-12 13:58 编辑

首先楼主发错地方了,其次拍的照很难看。

特意下了看了下,就是printf的格式参数错误而已
_CRTIMP        double __cdecl pow (double, double);

===========================================
楼主看下pow函数的定义看下返回类型,vc6下我记得是int那肯定不行。其次printf输出的%d错了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-12 12:55:09 | 显示全部楼层
本帖最后由 jackz007 于 2019-8-12 13:32 编辑

      楼主的关键问题有两个,第一个是变量类型错误,一个普通无符号32位整型数的表达范围是 0 ~ 2 ^ 32 - 1,而 128 ^ 5 的数值为 2 ^ 35,已经远远超出了一个整型数的表达范围;第二是格式描述符错误,"%d" 或 "%u" 只能用来显示普通整型数的数值,显示 64 位长整型数,格式描述符必须使用 "%I64u"(tdm-gcc 编译器)。
      想要解决问题,得把源码粘贴进代码块发布,就像下面这样:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>

main(void)
{
        unsigned long long x1 , x2                   ;  /* 目标数值非常大,相关变量必须采用 64 位长整型 */
        int k                                        ;
        x1 = pow(128 , 5)                            ;  /* 使用 C 语言标准库函数计算 128 ^ 5 */
        for(x2 = 1 , k = 0 ; k < 5 ; k ++) x2 *= 128 ;  /* 使用自编算法计算 128 ^ 5 的数值 */
        printf("x1 = %I64u\n" , x1)                  ;  /* 用 "%I64u" 格式符显示 64 位无符号长整型数 */
        printf("x2 = %I64u\n" , x2)                  ;  /* 同上 */
}

      以上代码使用 tdm-gcc 5.1.0 x86 成功编译运行。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-12 13:56:24 | 显示全部楼层
jackz007 发表于 2019-8-12 12:55
楼主的关键问题有两个,第一个是变量类型错误,一个普通无符号32位整型数的表达范围是 0 ~ 2 ^ 32 - ...

其实楼主的问题就一个,就是printf的时候格式参数错误
#include <stdio.h>
#include <stdlib.h>

int main()
{
    long long int a;
    a = pow(128,5);
    printf("%llu\n",a);
    return 0;
}
CodeBlocks通过
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-22 05:42

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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