两个for语句是怎么执行的

for(i=0;i<k-1;i++)for(j=i+1;j<k;j++)if(b[i]>b[j]){m=b[i];b[i]=b[j];b[j]=m}请帮我讲一下这段程序的... for(i=0;i<k-1;i++)
for(j=i+1;j<k;j++)
if(b[i]>b[j])
{m=b[i];b[i]=b[j];b[j]=m}

请帮我讲一下这段程序的执行顺序是怎么样的?

我想问的是两个for是怎么执行的,两个for有什么关系,如i=0时,执行一次
for(j=i+1;j<k;j++)直到j>k时,再执行第一个for(i=0;i<k-1;i++)将i赋值成1再执行for(j=i+1;j<k;j++)知道循环结束,是这样执行的吗?为什么我将第二个for语句去掉程序仍成立???

如果看不明白请给我举个例子两个for语句是怎么执行的,谢谢了!!!
但是为什么我去掉第二个for语句,程序仍然正确,第二个for语句是不是没用啊?完整程序如下。。。
main()
{
int a[20],b[20],i,j,k,m;
for(i=0;i<20;i++)
scanf("%d",&a[i]);
k=0;
for(i=0;i<20;i++)
{for(j=2;j<a[i]-1;j++)
if(a[i]%j==0) break;
if(j>=a[i]-1)
{b[k]=a[i];k++;}
}
for(i=0;i<k-1;i++)
for(j=i+1;j<k;j++)
if(b[i]>b[j])
{m=b[i];b[i]=b[j];b[j]=m;}
for(i=0;i<k;i++)
printf("%5d",b[i]);
pritnf("\n");

}

(1)请说一下与k有关的程序
(2)然后就是for(i=0;i<k-1;i++)
for(j=i+1;j<k;j++)
为什么去掉第二个for程序仍然正确,是不是第二个for语句多余啊?
(3)后面的排序程序用的什么方法是“选择法”还是“冒泡法”,我看不出来。。
谢谢。。。
展开
 我来答
督诺0GMffd
推荐于2017-10-03 · TA获得超过2013个赞
知道大有可为答主
回答量:3770
采纳率:0%
帮助的人:2074万
展开全部
这两个for是属于包含的关系。
给你个简单的例子,你好理解。
for(int i=0;i<10;i++) (1)
for(int k=0;k<5;k++)(2)
意思是先从i=0开始,然后执行下面的for5次,执行完后,把i加为1,再把下面执行10次,依次类推。总循环次数为50.
你的程序是可以用于排序,具体点是冒泡排序。
比如说b数组为1 3 5 7 2
那么从1开始,依次和后面的3 5 7 2 比较,这是一次大的循环。(1)
而在(1)中又有4个小循环。(2)
313倾国倾城
推荐于2017-09-04 · TA获得超过68.9万个赞
知道顶级答主
回答量:5万
采纳率:75%
帮助的人:5855万
展开全部
循环语句for按照以下5个步骤执行:
(1)求解初值表达式。
(2)判断循环条件表达式,如果值为真(非0),则执行for语句循环体内部的语句,然后执行第3步;如果值为假(0),则跳出循环,执行第(5)步。
(3)求解更新表达式。
(4)跳回第(2)步重复执行。
(5)循环结束,执行for循环体后面的语句。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
993697735
2015-09-15 · 超过13用户采纳过TA的回答
知道答主
回答量:37
采纳率:0%
帮助的人:19.1万
展开全部
你说的是For循环的嵌套吧,外循环For子句每执行一次,内循环For全部执行。反复如此,直到外循环执行完。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友b78405362
2010-05-10 · TA获得超过975个赞
知道小有建树答主
回答量:1140
采纳率:0%
帮助的人:662万
展开全部
是的,你理解的没有问题,外层的for执行第一次,然后里面的for执行完,在执行外层的for,在执行里面的for,如此循环知道外层执行完。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
侵权网
2010-05-10 · 超过14用户采纳过TA的回答
知道答主
回答量:61
采纳率:0%
帮助的人:0
展开全部
如果想知道怎么运行的你可以调试下试试。

如果你想更直观的了解可以加个大括号
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式