c语言fun2函数 c语言fun

c语言二级问题,fun2函数中第二次调用时fun2(x+1,n-2),也就是a[1],3,交换时不是a[1]和a[2]交换么?

其实这两个函数是相同的功能,都是将数组首尾对应的数据进行交换。只不过fun2采用了函数的嵌套,比如说你这个数组调用fun2时 将数组的首地址和长度n传递到fun2里面,第一次运算 我们将a[0](值为1)和a[4](值为5)进行了交换,然后运行到fun2(x+1,n-2); x+1是指将指向数组的指针+1,其实就是将指针指向了a[1],然后n-2 实际就是指当前需要交换的数据的个数,当这个例子在fun2运行了2次以后 第一次n=5,第二次n=3,第三次n=1时,说明我们要交换的数据只有一个了,就是不用交换了,进入if语句,正常返回。打了这么多 有什么不懂的 可以再提问

10年积累的网站建设、成都网站设计经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站制作后付款的网站建设流程,更有城关免费网站建设让你可以放心的选择与我们合作。

C语言中能否在一个自定义函数中调用另一个自定义函数?

当然可以!

C语言程序的最基本的模块就是函数,

该程序规定:任意函数都可以调用其它任意一个函数,包括函数本身;

1、函数调用自己本身, 这种称为递归;

通过递归,计算1+2+3+...+n值的代码:

2、自定义函数调用其它自定义函数的例子:

这个例子就是主函数调用自定义函数fun2,然后fun2调用另一个自定义函数fun1;

用C语言的函数递归方法来求

#include stdio.h

#include math.h

void fun2(int m)

{

int k=0,a[10];

for(int i=2;im;i++)

if(m%i==0)

a[k++]=i;

for(int i=0;ik;i++)

{

printf("%d",a[i]);

if(i!=k-1)

printf(",");

}

}

void fun1(int m)

{

if(m2)

printf("%d is a prime number",m);

for(int i=2;i*i=m;i++)

if(m%i==0)

fun2(m);

else

printf("%d is a prime number",m);

}

int main( )

{ int n;

scanf("%d",n);

fun1(n);

return 0;

}


分享题目:c语言fun2函数 c语言fun
网站网址:http://pwwzsj.com/article/dohshcc.html