X的多次方函数C语言程序,为什么老是警告?赋值不对?还是重复
发布网友
发布时间:2024-10-04 08:29
我来回答
共5个回答
热心网友
时间:2024-10-05 11:50
程序有几点错误,我改正了下,你看下是不是你的意思:
float power(double x,int n) //这里我理解你是要求x的n次方
{
int m; //m为局部函数,与main内的m不是同一个
int i;
double a;
for(int i=1;i<n;i++)
{
x+=x; //x的n次方,这里应该用+而不是*
}
a=x;
return a;
}
void main()
{
int n;
double x,J;
scanf("%lf%d",&x,&n); //这里写入x和n的值,而不是m的值
J=power(x,n); //将写入的x和n带入函数,结果返回给J
printf("%lf",J);
}
热心网友
时间:2024-10-05 11:51
楼主是程序新手吧?
问题是这样的 你调试下就看出来了 在power函数中你重新定义了一个int 型的 m变量 那么这个变量没有被赋予初值(在调试的时候你可以看到),这样的话在在循环中就存在逻辑矛盾了。
float power(double x,int n)
{
int m = 0;
double a;
for(m;m<n;m++)
x*=x;
a=x;
return a;
}
这样就对了
另外 还有一个方法 在你的头文件里写#include<math.h>
然后使用这个函数 pow(x,n); 就是x的n次方了。
热心网友
时间:2024-10-05 11:51
改为for(m=1;m<n;m++)
这一句x*=x;也有错误
把a赋值为1,然后把x*=x改为a=a*x;就行了
而 a=x;就不需要了
float power(double x,int n)
{
int m;
double a=1;
for(m=1;m<n;m++)
a=a*x;
return a;
热心网友
时间:2024-10-05 11:52
程序又问题,float power(double x,int n)函数中m没有赋值 n也没有,在主程序中用的m是局部变量,不能再子函数中使用 改成这样看看
float power(double x,int n)
{
int m=0;
double a=0;
for(m=1;m<=n;m++)
x*=x;
a=x;
return a;
}
main()
{
int n,m;
double x,J;
scanf("%lf%d",&x,&n);
J=power(x,n);
printf("%lf",J);
getch();
}
热心网友
时间:2024-10-05 11:52
#include "stdio.h"
double power(double x,int n)
{
int m=0;
double a=0;
a=x;
for(m=1;m<=n;m++)
a*=x;
return a;
}
main()
{
int n,m;
double x,J;
scanf("%lf%d",&x,&n);
J=power(x,n);
printf("%lf",J);
getch();
}
你的本意应该是这样子的吧。。。呵呵
热心网友
时间:2024-10-05 11:50
程序有几点错误,我改正了下,你看下是不是你的意思:
float power(double x,int n) //这里我理解你是要求x的n次方
{
int m; //m为局部函数,与main内的m不是同一个
int i;
double a;
for(int i=1;i<n;i++)
{
x+=x; //x的n次方,这里应该用+而不是*
}
a=x;
return a;
}
void main()
{
int n;
double x,J;
scanf("%lf%d",&x,&n); //这里写入x和n的值,而不是m的值
J=power(x,n); //将写入的x和n带入函数,结果返回给J
printf("%lf",J);
}
热心网友
时间:2024-10-05 11:51
楼主是程序新手吧?
问题是这样的 你调试下就看出来了 在power函数中你重新定义了一个int 型的 m变量 那么这个变量没有被赋予初值(在调试的时候你可以看到),这样的话在在循环中就存在逻辑矛盾了。
float power(double x,int n)
{
int m = 0;
double a;
for(m;m<n;m++)
x*=x;
a=x;
return a;
}
这样就对了
另外 还有一个方法 在你的头文件里写#include<math.h>
然后使用这个函数 pow(x,n); 就是x的n次方了。
热心网友
时间:2024-10-05 11:51
改为for(m=1;m<n;m++)
这一句x*=x;也有错误
把a赋值为1,然后把x*=x改为a=a*x;就行了
而 a=x;就不需要了
float power(double x,int n)
{
int m;
double a=1;
for(m=1;m<n;m++)
a=a*x;
return a;
热心网友
时间:2024-10-05 11:52
程序又问题,float power(double x,int n)函数中m没有赋值 n也没有,在主程序中用的m是局部变量,不能再子函数中使用 改成这样看看
float power(double x,int n)
{
int m=0;
double a=0;
for(m=1;m<=n;m++)
x*=x;
a=x;
return a;
}
main()
{
int n,m;
double x,J;
scanf("%lf%d",&x,&n);
J=power(x,n);
printf("%lf",J);
getch();
}
热心网友
时间:2024-10-05 11:53
#include "stdio.h"
double power(double x,int n)
{
int m=0;
double a=0;
a=x;
for(m=1;m<=n;m++)
a*=x;
return a;
}
main()
{
int n,m;
double x,J;
scanf("%lf%d",&x,&n);
J=power(x,n);
printf("%lf",J);
getch();
}
你的本意应该是这样子的吧。。。呵呵