C标准库中并没有循环函数的说法,只有三种循环语句:for语句和while语句,和do-while循环结构。
创新互联专注为客户提供全方位的互联网综合服务,包含不限于成都网站建设、成都网站制作、叙州网络推广、重庆小程序开发公司、叙州网络营销、叙州企业策划、叙州品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联为所有大学生创业者提供叙州建站搭建服务,24小时服务热线:18982081108,官方网址:www.cdcxhl.com
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 stdio.h
int IsCircle(int n) //判断n是不是循环数
{
int cir[6],cirtemp[6]; //本题中输入最大为6位数
int i=0,j,k=0,count=0;
while(n0) //把n的每一位一次放入数字cirtemp中(反序)
{
count++; //计数
cirtemp[i++]=n%10;
n=n/10;
}
for(i=0;icount;i++) //把顺序还原回来(直接用反序也可以,只是还原回看后面的代码会好理解些)
cir[i]=cirtemp[count-i-1];
for(i=0;icount;i++) //是几位数总共就要循环几次
{
j=cir[k]; //向前右j步
k=(k+j)%count; //走完后的下标
}
if(k==0) //循环完刚好回到第一个数,这个数是循环数
return 1;
else
return 0;
}
int main()
{
int n,i=0;
printf("请输入一个数(9<这个数<999589):\n"); //按题意这行可以删去
scanf("%d",n);
while(1)
{
if(IsCircle(n+i)==1)
{
printf("%d\n",n+i);
break;
}
else if(IsCircle(n-i)==1)
{
printf("%d\n",n-i);
break;
}
i++;
}
return 0;
}
严格来说我这个程序还不严谨,IsCircle中判断k是否遍历了0,1,2,……count这些自然数来判断是否是循环数更准确,毕竟可能会有巧合使得循环完后回到了第一个数(下标k=0)但是却在中途有一个数没有作为起点和终点(只是觉得有可能,具体是否可能需要证明)。
其实也不难把k的每一个值都加起来如果=1+2+3+……+count,且最后k=0就可以了
还有就是输入的时候最好判断一下输入是否规范 9<数<999589
1.for语句的一般格式
for([变量赋初值];[循环继续条件];[循环变量增值])
{
循环体语句组;}
2.for语句的执行过程
执行过程如图5-1所示。
(1)求解“变量赋初值”表达式。
(2)求解“循环继续条件”表达式。如果其值非0,执行(3);否则,转至(4)。
(3)执行循环体语句组,并求解“循环变量增值”表达式,然后转向(2)。
(4)执行for语句的下一条语句。
3.说明
(1)“变量赋初值”、“循环继续条件”和“循环变量增值”部分均可缺省,甚至全部缺省,但其间的分号不能省略。
(2)当循环体语句组仅由一条语句构成时,可以不使用复合语句形式,如上例所示。
(3)“循环变量赋初值”表达式,既可以是给循环变量赋初值的赋值表达式,也可以是与此无关的其它表达式(如逗号表达式)。
例如,for(sum=0;i=100;i++)
sum
+=
i;
for(sum=0,i=1;i=100;i++)
sum
+=
i;
(4)“循环继续条件”部分是一个逻辑量,除一般的关系(或逻辑)表达式外,也允许是数值(或字符)表达式。