C 计算一个幂和一个基的结果,不需要数学运算

C 计算一个幂和一个基的结果,不需要数学运算,c,C,在我的大学里,我被要求创建一个程序,要求用户输入两个输入。一个是基数,另一个是数字的幂。我不允许只使用math.h循环 这是我迄今为止的代码: #include <stdio.h> int main() { int base; printf(" Please enter the base: "); scanf("%d", &base); int power; printf(" Please enter the power: ");

在我的大学里,我被要求创建一个程序,要求用户输入两个输入。一个是基数,另一个是数字的幂。我不允许只使用
math.h
循环

这是我迄今为止的代码:

#include <stdio.h>

int main() {
    int base;
    printf(" Please enter the base: ");
    scanf("%d", &base);

    int power;
    printf(" Please enter the power: ");
    scanf("%d", &power);

    printf("\n%d ^ %d is the same as...\n\n", base, power);

    printf(" %d", base);

    int reps;
    int number;
    for(reps = base; reps <= power; reps += 1) {
        printf("* %d ", base);
    }

    for(number; number <= power;number += 1) {
        int result = base * base;
        for (result; number <= power; result = base * result) {
            result = result * base;
            printf("\n or  %d", result);
        }
    }


    return 0;
}
#包括
int main(){
int-base;
printf(“请输入基数:”);
scanf(“%d”、&base);
整数幂;
printf(“请输入电源:”);
扫描频率(“%d”和功率);
printf(“\n%d^%d与…\n\n”相同,基,功率);
printf(“%d”,基数);
杰出代表;
整数;

对于(reps=base;reps计算功率的循环如下所示

int product = 1;
for(int multiplicationCounter = 1;multiplicationCounter <= power; multiplicationCounter ++) {
    product *= base;
}
printf("Result is %d", product);
int-product=1;

对于(int-multiplicationCounter=1;multiplicationCounter计算幂的循环如下所示

int product = 1;
for(int multiplicationCounter = 1;multiplicationCounter <= power; multiplicationCounter ++) {
    product *= base;
}
printf("Result is %d", product);
int-product=1;

对于(int-乘法计数器=1;乘法计数器假设基和幂都是正整数

然后

int结果=1;

对于(int i=0;i假设基和幂都是正整数

然后

int结果=1;
对于(int i=0;i(您的主要问题是使用未初始化的变量;在C中这样做的行为是未定义的。)

但是,让我们重做答案。首先要做的是将实际功率函数从所有输入和输出中分离出来。关于该函数,我将把我最喜欢的方法放入答案池中,前提是您将仔细阅读并理解它

您可以使用称为平方求幂的技术解决此问题:

该方法在

中有充分的解释(您的主要问题是使用未初始化的变量;在C中这样做的行为是未定义的。)

但是,让我们重做答案。首先要做的是将实际功率函数从所有输入和输出中分离出来。关于该函数,我将把我最喜欢的方法放入答案池中,前提是您将仔细阅读并理解它

您可以使用称为平方求幂的技术解决此问题:

该方法已在

中进行了充分说明,这应该是可行的

#include <stdio.h>

int main()
{
     int base;
     printf(" Please enter the base: ");
     scanf("%d", &base);

     int power;
     printf(" Please enter the power: ");
     scanf("%d", &power);

     printf("\n%d ^ %d is the same as...\n\n", base, power);

     printf(" %d", base);

     int reps;
     int number;
     int result=1:


        for(number=1; number <= power;number += 1)
        {
            result=result*base
        }

     printf("The result is %d", result);
     return 0;
#包括
int main()
{
int-base;
printf(“请输入基数:”);
scanf(“%d”、&base);
整数幂;
printf(“请输入电源:”);
扫描频率(“%d”和功率);
printf(“\n%d^%d与…\n\n”相同,基,功率);
printf(“%d”,基数);
杰出代表;
整数;
int结果=1:
对于(数字=1;数字这应该有效

#include <stdio.h>

int main()
{
     int base;
     printf(" Please enter the base: ");
     scanf("%d", &base);

     int power;
     printf(" Please enter the power: ");
     scanf("%d", &power);

     printf("\n%d ^ %d is the same as...\n\n", base, power);

     printf(" %d", base);

     int reps;
     int number;
     int result=1:


        for(number=1; number <= power;number += 1)
        {
            result=result*base
        }

     printf("The result is %d", result);
     return 0;
#包括
int main()
{
int-base;
printf(“请输入基数:”);
scanf(“%d”、&base);
整数幂;
printf(“请输入电源:”);
扫描频率(“%d”和功率);
printf(“\n%d^%d与…\n\n”相同,基,功率);
printf(“%d”,基数);
杰出代表;
整数;
int结果=1:


对于(number=1;number
int number;
-->
int number=0;
你能告诉我们发生了什么以及预期会发生什么吗?你是……的同学吗。。lol@SouravGhosh更好的
for(number=0;…
甚至更好(如果在更高的c标准上):
for(int number=0
int number;
-->
int number=0;
你能告诉我们发生了什么以及预期会发生什么吗?你是……的同学吗。。lol@SouravGhosh更好的
for(number=0;…
甚至更好(如果在更高的c标准上):
for(int number=0
基数为10的2=10的平方幂。然后循环将循环2倍的幂,并将乘积乘以10*10的基数。或者你的意思是什么?我被他的问题的措辞弄糊涂了。我认为Base指的是数字的基数。例如
11 Base 2=3 Base 10
。我错了尽管如此。啊,对不起。我没把你带到那里。基数是10的2=10的平方幂。然后循环将循环2倍的幂,每次乘以10*10的基数。或者你是什么意思?我被他的问题的措辞弄糊涂了。我认为基数指的是数字的基数。例如
11 Base 2=3 Base 10
。不过我错了。啊,对不起。没有让你明白。唯一明智的答案是,其他的答案就像是通过在循环中添加来建议乘法。但是注释
/*这意味着幂是奇的*/
,这并不是真的相关,更多的是关于检查每一位的位置。@WeatherVane:是的,这是误导。我已经修改了。@AnttiHaapala:算法wworks适用于负数
base
(它甚至适用于浮点
base
)。唯一明智的答案是,其他的答案就像是通过在循环中添加来建议乘法。但是注释
/*这意味着幂是奇数*/
并不是真正相关的,它更多的是关于检查每个位的位置。@WeatherVane:是的,这是误导性的。我已经修正了。@AnttiHaapala:该算法适用于负
。(它甚至适用于浮点
)。谢谢你这么多的朋友!谢谢你这么多的朋友!