#include <stdio.h>
#include <math.h>
main()
{
float i;
float x,N,sum;
printf("enter x and N respectively");
scanf ("%f %f", &x, &N);
sum = 0;
for (i=1;i<=N;i++){
sum = sum + ((pow(x,i))/(fact(i)));
}
printf ("%f", sum);
}
int fact(int n){
int i,temp;
temp = 1;
for (i=1;i<=n;i++){
temp = temp*i;
return temp;
}
}
这是相应地打印各项的总和。我尝试在 main 内部定义事实,但有一些控制流警告,这次我在外部尝试了相同的操作,但答案错误。有什么帮助吗?
最佳答案
您不能(C99 或 C11 标准禁止您)在另一个函数(例如 main
)中定义一个函数(例如 fact
)。
但是,某些 C 编译器,特别是 GCC接受作为扩展以获得 nested functions .
(我不建议使用该扩展,特别是如果您是 C 新手)
当然你最好声明
int fact(int n);
在您的main
之前,并将其定义保留在之后。
您的代码是错误的(特别是,最好将 define main
为 int main(int argc, char**argv)
然后学习关于 getopt 并使用它)。使用所有警告和调试信息(例如,gcc -Wall -Wextra -g homework.c -o binaryprog
...)编译它,然后使用调试器(例如,gdb ./binaryprog
>)
关于c - 在 main 之外定义函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35940841/