在程序中使用unsigned long long int和long long int计算数字幂的问题

时间:2018-11-20 17:36:42

标签: c

我编写了两个函数来查找c中的正数和负数的幂,但是它没有打印任何内容

#include<stdio.h>

int Driver(int NUMBER, int EXPO, int ans){
    while(EXPO>0)
    {
        ans = ans*NUMBER;
        EXPO--;
    }
    return ans;
}

void Calculate_pos_power(int number, int expo)
{
    int NUMBER = number;
    int EXPO = expo;

    unsigned long long int ans = 1;

    unsigned long long int xxx=Driver(NUMBER,EXPO, ans);


    printf("Answer is : %llu ",xxx);
    printf("\n");
}

void Calculate_neg_power(int number, int expo)
{
    int NUMBER = number;
    int EXPO = expo;

    long long int ans = 1;
    long long int xxx = Driver(NUMBER,EXPO, ans);

    int Driver(NUMBER,EXPO, ans);
    printf("Answer is : %lli ",xxx);
    printf("\n");
}
int main()
{
    int number;
    int expo;

    printf("Enter the number\n");
    scanf("%d",&number);

    printf("Enter the exponent\n");
    scanf("%d",&expo);

    if(number<0)
    {
        void Calculate_neg_power(number,expo);
    }
    else{
        void Calculate_pos_power(number,expo);
    }

    return 0;
}

我希望当number小于0时,答案应为long long int;当大于0时,答案应为unsigned long long int。 但它不返回任何值

2 个答案:

答案 0 :(得分:0)

main中:

void Calculate_neg_power(number,expo);

不是调用函数的正确方法。

您应该将其更改为:

Calculate_neg_power(number,expo);

Calculate_pos_power也是如此。

答案 1 :(得分:0)

您实际上并不是在调用函数:

if(number<0)
{
    void Calculate_neg_power(number,expo);
}
else{
    void Calculate_pos_power(number,expo);
}

这些是函数声明,而在那是无效的。

在调用函数时,请勿在返回类型前加上前缀。

if(number<0)
{
    Calculate_neg_power(number,expo);
}
else{
    Calculate_pos_power(number,expo);
}

您在其中一个未执行任何操作的函数中也有一个类似的声明:

int Driver(NUMBER,EXPO, ans);

可以将其删除。