功能没有传递给main

时间:2013-10-25 20:37:18

标签: c function

我没有收到任何错误,但我没有得到正确的值。它继续打印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;

}

1 个答案:

答案 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);    
}