我的程序好像不能运行了
编写一个函数integerPower(base,exponent),该函数返回base指数的值。例如,integerPower( 3,4)= 3 *3*3*3。假设指数为非零的正整数,基数为整数。函数integerPower应用于控制计算。不要使用任何数学库函数。
我有这个程序
#include<stdio.h>
int power(int b, int e){
int x
for (x = 0; x <= e; x++)
b=b;
return b;
}
void main(){
int b = 0;
int e = 0;
scanf("input a base %d\n", &b);
scanf("input an exponent %d\n", &e);
power(b,e);
printf("%d" , b);
}
发布于 2014-11-03 19:17:18
#include<stdio.h>
int power(int b, int e){
int x;
int result = 1;
for (x = 0; x < e; x++)
result*=b;
return result;
}
int main(){
int b = 0;
int e = 0;
printf("Input a base ");
scanf("%d", &b);
printf("Input an exponent ");
scanf("%d", &e);
b = power(b,e);
printf("%d" , b);
return 0;
}
第一个问题是scanf函数。您使用的是“输入基础”。为了输出,你必须使用printf("input a base ")。
发布于 2014-11-03 19:18:03
尝试使用下面的函数来计算指数的幂的底数的值
int ipower(int b, int e)
{
int x, tmp = 1;
for (x = 0; x < e; x++)
tmp *= b;
return tmp;
}
在这里,for循环被迭代e次,即从0到e-1。"tmp“将保存结果。
确保不要在循环中更改“b/e”(基/指数)的值,否则会导致错误的结果。
发布于 2021-02-13 23:12:09
在函数体中执行b*=b也不会有什么帮助。当你应该从用户输入b和e时,为什么要把它们初始化为零呢?试试这个:
#include<stdio.h>
int power(int b, int e) {
int temp = b;
int x;
for (x = 1; x < e; x++)
b *= temp;
return b;
}
void main() {
int b ;
int e;
scanf_s(" %d", &b);
scanf_s(" %d", &e);
int h= power(b, e);
printf("%d", h);
}
https://stackoverflow.com/questions/26712892
复制相似问题