c语言的问题 tk513填空

来源:百度知道 编辑:UC知道 时间:2024/06/06 18:05:14
tk513.c功能是用插入法对数组a进行降序排列。请将程序中标明的(1)(2)(3)处补充完整,使它能得出正确的结果。不得增行或删行,也不得更改程序的结构!

#include <stdio.h>
void main()
{
int a[10]={10,50,3,80,78,100,56,67,102,11};
int i,j,m;
for(i=1;i<10;i++)
{
m=a[i];
j=(1);
while(j>=0&&m>a[j])
{
a[j+1]=(2);
j--;
}
a[j+1]=(3);
}
printf("Result is: ");
for(i=0;i<10;i++)
printf("%d ",a[i]);
printf("\n");
}

#include <stdio.h>
void main()
{
int a[10]={10,50,3,80,78,100,56,67,102,11};
int i,j,m;
for(i=1;i<10;i++)
{
m=a[i];
j=(1); // j = i-1;这样理解就可以了:前i-1个已经有序,把第i个插入!
while(j>=0&&m>a[j])
{
a[j+1]=(2); // a[j+1] = a[j];
j--;
}
a[j+1]=(3); // a[j+1] = m;把m(也就是最初的a[i])插入
}
printf("Result is: ");
for(i=0;i<10;i++)
printf("%d ",a[i]);
printf("\n");
}