-1

我已经编写了两个函数来查找 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;
}

我希望当数字小于 0 时,答案应该是 long long int,当它大于 0 时,它应该是 unsigned long long int。但它不返回任何值

4

2 回答 2

0

main

void Calculate_neg_power(number,expo);

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

您应该将其更改为:

Calculate_neg_power(number,expo);

同样的事情也适用Calculate_pos_power

于 2018-11-20T17:42:14.613 回答
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);

这个可以去掉。

于 2018-11-20T17:42:37.310 回答