gjfyyds 发表于 2021-8-12 16:13:58

为什么我跟小甲鱼输出的值不一样

#include<stdio.h>
#include<math.h>

int main()
{
            int i;
            int n;

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

            n = pow(i, 5);
            printf("%d的五次方是 : %d\n",i,n);

            return 0;
}

gjfyyds 发表于 2021-8-12 16:14:39

#include <stdio.h>
#include <math.h>

int main()
{
      int i;
      double result;

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

      result = pow(i, 5);

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

      return 0;
}
这是小甲鱼的

gjfyyds 发表于 2021-8-12 16:15:35

同样输入128,结果不一样{:10_266:}{:10_266:}{:10_266:}

万千只cnm 发表于 2021-8-12 16:27:26

scanf("%lf", &i);

gjfyyds 发表于 2021-8-12 16:33:23

万千只cnm 发表于 2021-8-12 16:27
scanf("%lf", &i);

这是啥错误?

逃兵 发表于 2021-8-12 16:37:39

溢出了

jhq999 发表于 2021-8-12 16:50:10

scanf("%lf", &i);把值赋给i的指针地址,应该是scanf("%lf", i);吧,新人回答,不对请谅解

万千只cnm 发表于 2021-8-12 19:48:04

jhq999 发表于 2021-8-12 16:50
scanf("%lf", &i);把值赋给i的指针地址,应该是scanf("%lf", i);吧,新人回答,不对请谅解

scanf参数都是指针啊   
所以要取i的地址

而且格式化输入要与变量对应
%lf对应double

jhq999 发表于 2021-8-12 20:16:30

万千只cnm 发表于 2021-8-12 19:48
scanf参数都是指针啊   
所以要取i的地址



6楼说的对把int n 换成 __int64 n试试
页: [1]
查看完整版本: 为什么我跟小甲鱼输出的值不一样