| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1034 人关注过本帖
标题:我是小白,请教for循环break
取消只看楼主 加入收藏
wjs3721
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2021-6-1
结帖率:0
收藏
已结贴  问题点数:20 回复次数:2 
我是小白,请教for循环break
#include<stdio.h>
main()
{
int i,j,p,q,s,n,a[11]={127,3,6,28,54,68,87,105,162,18};
for(i=0;i<10;i++)
{ p=i;q=a[i];
for(j=i+1;j<10;j++)
if(q<a[j]) {p=j;q=a[j];}
if(p!=i)
{
s=a[i];
a[i]=a[p];
a[p]=s;
}
printf("%d ",a[i]);
}
printf("\ninput number:\n");
scanf("%d",&n);
for(i=0;i<10;i++)
if(n>a[i])
{for(s=9;s>=i;s--) a[s+1]=a[s];
break;}

a[i]=n;
for(i=0;i<=10;i++)
printf("%d ",a[i]);
printf("\n");
}

请教一下各位,红色部分里面有break跳出循环,既然跳出循环了,那么又是如何将数组 依次向后移动一位的。执行的顺序没搞懂,不太理解!

[此贴子已经被作者于2022-8-7 23:45编辑过]

搜索更多相关主题的帖子: printf i++ break for 循环 
2022-08-07 23:42
wjs3721
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2021-6-1
收藏
得分:0 
就是没想通,既然在对比时进行for循环,依次将数组向后移,为什么移一位后,就break跳出了,到上个for中的if(n>a[i])不就是i越来越大了,再把n赋予a[i],越看越不对,所以问一下,红色部分的break是否是在for(s=9;s>=i,s--) a[s+1]=a[s];执行循环完成之后再执行的break呢?我是初学者,有点看不懂了
2022-08-08 00:15
wjs3721
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2021-6-1
收藏
得分:0 
回复 3楼 rjsp
大神,这是 谭浩强 C语言的教程里的举例程序,因为我所是初学,所以没搞懂。感觉是跳出循环了,而执行结果是对的。确实是break没弄明白,不是说遇到break就跳出了吗,难道是在  ; 之前执行和;之后执行的结果不一样么

[此贴子已经被作者于2022-8-8 20:43编辑过]

2022-08-08 20:30
快速回复:我是小白,请教for循环break
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014193 second(s), 9 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved