C语言问题,急!!!!要

来源:百度知道 编辑:UC知道 时间:2024/05/27 03:27:03
#include <stdio.h>
main()
{double fun(int n);
int n;
scanf("%d",&n);
printf("sum=%f",fun(n));
}
double fun(int n)
{double sum=0.0;
int i;
for(i=1;i<=n;i++)
sum+=1.0/i;
return sum;
}
#include <stdio.h>
double fun(int n)
{double sum=0.0;
int i;
for (i=1;i<=n;i++)
sum+=1.0/i;
return sum;
}
main()
{int n;
scanf("%d",&n);
printf("sum=%f",fun(n));
} 这两个题目我有很多不明白的地方,请高手教我一下。QQ360028790。

这是一个函数调用问题
第一个是属于函数内部调用,第二个是函数外部调用
程序都是从main()开始执行的
看第一个程序从定义一个函数,定义表达式的最后一项,并输入最后一项;然后到输出语句,首先输出"sum="后遇到"%f"即printf后面的参数fun(n),遇到fun(n)之后,因为fun(n)个函数,所以就要转到下面的函数下执行。最后求得fun(n)的值,并且通过return语句返回到main()中;随即可以输出"%f"所代表的值了。
第二个就是外部调用;一样从main()开始执行一直到fun(n)是再返回到上面所定义的函数中去,过程和内部函数一样
只不过外部函数得在main()之前定义,之后就可以省去在main()里面定义所要调用的函数。

#include <stdio.h>
main()
{double fun(int n); /*函数声明,由于fun子函数是在主函数后面定义的,所以要在主函数李声明*/
int n;
scanf("%d",&n);
printf("sum=%f",fun(n));
}
double fun(int n)
{double sum=0.0;
int i;
for(i=1;i<=n;i++)
sum+=1.0/i;
return sum;
}
这程序的功能的是:你输入一个n,程序计算1+1/2+1/3+.......+1/n的结果

#include <stdio.h>
double fun(int n)
{double sum=0.0;
int i;
for (i=1;i<=n;i++)
sum+=1.0/i;
return sum;
}
main()
{int n;
scanf("%d",&n);