我没有收到任何错误,但我没有得到正确的值。它继续打印0!看起来它不是在阅读我的功能,我真的不知道它可能是什么。
#include <stdio.h>
#include <math.h>
int rec(int base, int ex,int ans);
int main()
{
int base;
int ex;
int ans;
for(ex=2;ex!=1;){
printf("Enter a base and an exponent\n");
scanf("%d %d",&base,&ex);
rec(base,ex,ans);
printf("%d raised to the %d is %d \n", base, ex, ans);
}
return 0;
}
int rec(int base, int ex,int ans)
{
ans=pow(base, ex);
return ans;
}
答案 0 :(得分:1)
您的代码中有两个不同的ans
,而您正在错误地解释它们。将rec
的返回值分配给ans
并删除rec
中的值,因为它没有意义。我们走了:
int main() {
int base;
int ex;
int ans;
for(ex=2; ex!=1;) {
printf("Enter a base and an exponent\n");
scanf("%d %d",&base,&ex);
ans = rec(base,ex);
printf("%d raised to the %d is %d \n", base, ex, ans);
}
return 0;
}
int rec(int base, int ex) {
return pow(base, ex);
}