你想问的是while能不能调用循环函数吧,是可以调用的。
创新互联是一家专业提供镇沅企业网站建设,专注与成都网站建设、网站制作、HTML5建站、小程序制作等业务。10年已为镇沅众多企业、政府机构等服务。创新互联专业的建站公司优惠进行中。
while 循环:先判断while 后面括号里的值,如果为真则执行其后面的代码;否则不执行。while(1)表示死循环。
你说的是递归函数吧?建议你看看这个函数,比较简单,可以学习一下。
long fact(int n)
{
if (n==1)
return 1;
return (fact(n-1))*n;
}
C标准库中并没有循环函数的说法,只有三种循环语句:for语句和while语句,和do-while循环结构。
for循环的一般语法格式为:
for(表达式1;表达式2;表达式3)
{
循环体
}
其中,表示式可以省略,但是分号不可省略。
while语句的一般表达式为:
while(表达式)
{
循环体
}
do while 结构
do
{
循环体
}while( 表达式 )
实例:
1.for循环
#includestdio.h
int main(void)
{
int i,j,k;
j=k=2;
printf("ijk\n");
for(i=0;i2;i++){
printf("%d%d%d\n",i,j,k);
}
return0;
}
2.while循环
#includestdio.h
int main(void)
{
int i=3;
j=k=2;
while(i0){
printf("%d%d%d\n",i,j,k);
}
return0;
}
3.do while循环
#includestdio.h
int main(void)
{
int i=3;
j=k=2;
do{
printf("%d%d%d\n",i,j,k);
}while(i0)
return0;
}
#include
int
func(int
i);
//函数的原型定义
int
main(void)
{
int
n;
float
y;
scanf_s("%d",n);
//n没有被初始化,为任意值,此时是读取一个值给n,删去,直接给n初始化为5也可以
scanf_s是vs2013编译器专用的,请自行改成scanf
y
=
func(n);
/*函数的调用*/
printf("%d!=%f",
n,
y);
/*for语句多余*/
return
0;
}
int
func(int
i)
{
int
sum=0;
if
((i
==
0)
||
(i
==
1))
sum
=
1;
else
sum
=
func(i-1)
*
i;
//
i的值没有变化,一直都是读入的值,不会终止递归。
return
sum;
}
当然是在循环体内调用,如果没有其他限制条件,循环一次就调用函数一次,直至循环条件结束,循环结束。
没有收到返回值的原因
#includestdio.h
int
fun
(int
lim,int
aa[10])
{
int
i,j,k=0;
for(i=2;i=lim;i++)
{
for(j=2;ji;j++)
if(i%j==0)
break;
if(j=i)
aa[k++]=i;
}
return
k;
}
main
(
)
{
int
aa[10];
int
lim=10,k=0;
k=fun(lim,aa);//就是这里,要把函数返回值赋值给k,才行,主函数的k和fun函数的k是完全两个东西
printf("%d\n",k);
}