gpt4 book ai didi

c - C语言中(a^n-1)的写法

转载 作者:行者123 更新时间:2023-11-30 21:05:49 24 4
gpt4 key购买 nike

我想用c语言编写(a^n-1)。我写了pow(a,n-1)输出是错误的。我怎么解决这个问题?谢谢。这是我的代码:

#include <stdio.h>
#include<math.h>
int main() {

float a, r,n;
float sum = 0;
a = 1.04*pow(a, n-1);
r = 1.02*pow(1.04,-1);
n = 2;

sum = 360000*pow(1.04,n)-50000*(a * (1 - pow((r), n ))) / (1- (r));


printf("\n%.2f", sum);
return 0;
}

正确的输出应该是286376但程序显示2903773

最佳答案

每个 C 程序都是逐行执行的。所以,当编译器启动时

a = 1.04*pow(a, n-1);

这一行,变量an没有分配任何值,导致给你一个垃圾值...

所以,问题是,您没有为变量赋值,但您仍然在使用它们。

在使用变量之前,您必须先为其赋值。否则,他们将从内存中选择任何垃圾值(任何随机数)。

an中分配值,然后重试。

编辑:chux's comment建议,如果您的程序应提供 286376 作为输出,则 a 的值应为 1 且值为 n code> 应为 2

所以,你的正确代码是这样的:

#include <stdio.h>
#include <math.h>
int main() {
float a=1, r, n=2;
float sum = 0;
a = 1.04*pow(a, n-1) ;
r = 1.02*pow(1.04,-1);
sum = 360000*pow(1.04,n)-50000*(a * (1 - pow((r), n ))) / (1- (r));
printf("\n%.2f", sum);
return 0;
}

关于c - C语言中(a^n-1)的写法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52568473/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com