我有这样的代码,其计算值的指数功率,这两者是由用户,例如输入,用户输入2^3 = 8,其假设像这样工作,但,最终的结果是608出头错误,当我在计数器中的pwra函数中进行调试时,即使在计数器初始化结果值被设置之前,从我不知道的地方开始,因为我没有设置它,所以最终结果是608。我觉得它是一个缓冲区问题,但我有尝试了进出口,它不起作用。所以当我将这段代码复制到一个新窗口时,它会在一段时间内运行,然后再次显示,之前它显示624作为最终结果。可变缓冲区?
#include <stdio.h>
int pwra (int, int);
int main()
{
int number, power, xx;
printf("Enter Number: ");
scanf("%i", &number);
printf("Enter Number: ");
scanf("%i", &power);
xx=pwra (number,power);
printf("Result: %i", xx);
return 0;
}
int pwra (int num, int pwr)
{
int count, result;
for(count=1;count<=pwr;count++)
{
result = result*num;
}
return result;
}
另一件事,我怎样才能从float
计算的指数值,因为当我改变所有的int
到float
最终的结果总是0.00000甚至%lf
。
至于你的浮点问题,除了什么Sourav戈什回答,您使用的'float'或'double'?虽然'printf'并不重要,当您使用['scanf'](http://en.cppreference.com/w/c/io/fscanf)时,格式规范和类型很重要:''%lf“ ''是'double',''%f''是'float'。 –
OK,感谢球员,似乎是在一个软件编译器问题,当我改变了软件的做工精细,启动了在它的两个工作后,无论如何,但是浮动的事情并没有在任何工作,最终的结果是0.00000。我改变了整数倍,并浮动以及,没有工作..我确实得到了一个-1.NANO作为答案,但在此之后什么都没有,仍然0.00000。为了澄清我想要做的是让用户输入值和指数作为浮点数,最终结果肯定会很长,因此最终结果必须长双倍,如lf .. – TryllZ
无论如何问题你有,这不是一个编译器问题。 Sourav Ghosh回答了主要问题,现在如果你有浮点数问题,你应该发表关于它的另一个问题,显示新的代码(使用浮点数据类型和格式),我们将很乐意帮助你。 –