求助
#include <stdio.h>#include <stdlib.h>
#include <math.h>>
int main()
{
int num, num3, fig, last;
int *pnum, *pnum3, *pfig, *plast;
//num表示用户输入的数字,num3表示num的三次方,fig表示求和式子的第一个数,last表示求和式子的最后一个数
pnum = #
pfig = &fig;
plast = &last;
pnum3 = &num3;
printf("请用户输入一个数用来验证尼科彻斯定理:");
scanf("%d", pnum);
fig = num * num - num + 1;
last = num *num + num - 1;
num3 = pow(num, 3);
printf("(%d的三次方)%d = %d + %d + ... + %d\n", *pnum, *pnum3, *pfig, (*pfig + 2), *plast);
return 0;
}
为什么输入5的时候计算5的3次方得出来的值为124,但是其他数字算三次方的时候都是正确的
本帖最后由 YSW9527 于 2022-1-26 22:16 编辑
#include <stdio.h>
#include <stdlib.h>
#include <math.h>>
int main()
{
int num, num3, fig, last;
int* pnum, * pnum3, * pfig, * plast;
//num表示用户输入的数字,num3表示num的三次方,fig表示求和式子的第一个数,last表示求和式子的最后一个数
pnum = #
pfig = &fig;
plast = &last;
pnum3 = &num3;
printf("请用户输入一个数用来验证尼科彻斯定理:");
scanf_s("%d", pnum);//vs2019里加个
fig = num * num - num + 1;
last = num * num + num - 1;
num3 = pow(num, 3);
printf("(%d的三次方)%d = %d + %d + ... + %d\n", *pnum, *pnum3, *pfig, (*pfig + 2), *plast);
return 0;
}
//在VS019里面是对的,你用什么编译器
DEV C++ gcc 9.2 验证没有问题啊,为什么会出现 124? pow这个函数计算过程是double型,返回值也是double型,转为int 会丢失精度
别的编译器没有问题可能是,编译器自带优化了 翼是孤独 发表于 2022-1-27 11:48
pow这个函数计算过程是double型,返回值也是double型,转为int 会丢失精度
别的编译器没有问题可能是,编 ...
谢谢 YSW9527 发表于 2022-1-26 22:09
#include
#include
#include >
code blocks
页:
[1]