跪求帮忙分析一下程序的含义,运行结果是用插入法对数组a降序排序,但不知循环里面到底是什么意思#include "stdio.h"void main (){ int a[5]={4,7,2,5,1},i,j,m; for(i=1;i=0&&m>a[j]) { a[j+1]=a[j]
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/19 15:43:27
跪求帮忙分析一下程序的含义,运行结果是用插入法对数组a降序排序,但不知循环里面到底是什么意思#include "stdio.h"void main (){ int a[5]={4,7,2,5,1},i,j,m; for(i=1;i=0&&m>a[j]) { a[j+1]=a[j]
跪求帮忙分析一下程序的含义,运行结果是用插入法对数组a降序排序,但不知循环里面到底是什么意思
#include "stdio.h"
void main ()
{
int a[5]={4,7,2,5,1},i,j,m;
for(i=1;i=0&&m>a[j])
{
a[j+1]=a[j];
j--;
}
a[j+1]=m;
}
for(i=0;i
跪求帮忙分析一下程序的含义,运行结果是用插入法对数组a降序排序,但不知循环里面到底是什么意思#include "stdio.h"void main (){ int a[5]={4,7,2,5,1},i,j,m; for(i=1;i=0&&m>a[j]) { a[j+1]=a[j]
m先把a[i]的值存放起来;
j=i-1;就是使a[j]成为a[i]左边的那个元素;
while(j>=0&&m>a[j])
{
a[j+1]=a[j];
j--;
}
这个循环就是把a[i]的值不断和左边的值做比较,如果左边的值是小于它的,就把那个值往右移动一个位置,当找到一个比a[i]的值大的值时,循环就会停止,这时a[j]指向的是比a[i]大的那个值.
a[j+1]=m;
最后这里,就是把m(原来a[i]的值)放在比它大的那个值的右边
下面,for循环继续执行