问题描述:
编译代码时系统报错:
[Error] ‘pow’ was not declared in this scope
代码如下:
#include <stdio.h>
double fn( double x, int n );
int main()
{
double x;
int n;
scanf("%lf %d", &x, &n);
printf("%lf",pow(x,n));
// printf("%.2f\n", fn(x,n));
return 0;
}
double pow(double num,int count)
{
int i,start;
for(i=0,start=1;i<count;i++)
start = start * num;
return start;
}
double fn( double x, int n )
{
int flag=1;
if(n%2==0) flag=-1;
if(n==1)
return x;
else
return flag*pow(x,n--)+fn(x,n);
}
原因分析:
没有提前声明函数
解决方案:
在main()函数前做出声明即可
修改后的代码如下:
#include <stdio.h>
double fn( double x, int n );
double pow(double num,int count);
int main()
{
double x;
int n;
scanf("%lf %d", &x, &n);
printf("%lf",pow(x,n));
// printf("%.2f\n", fn(x,n));
return 0;
}
double pow(double num,int count)
{
int i,start;
for(i=0,start=1;i<count;i++)
start = start * num;
return start;
}
double fn( double x, int n )
{
int flag=1;
if(n%2==0) flag=-1;
if(n==1)
return x;
else
return flag*pow(x,n--)+fn(x,n);
}
修改部分如下:
double pow(double num,int count);
本文解析了在C语言中遇到的编译错误'pow' not declared in this scope,展示了如何通过提前声明函数解决此问题,并提供了修改后的代码示例。
2万+

被折叠的 条评论
为什么被折叠?



