再每句后面添加输出数组中所有元素,自己观察一下。
void printall() {
static int n=1;
int i;
printf("\nn:%04d: ",n);
n++;
for (i=0;i<10;i++) printf("a[%d]:%2d ",i,a[i]);
printf("\n");
getchar();//按回车键继续
}
……
printall();
……
printall();
……
printall();
每次选择最大数与数组最后一个元素交换
#include<stdio.h>
#define m -65536
void p(int t[],int n)
{
for(int j=0; j<n; j++)
printf("%d ",t[j]);
printf("\n");
}
int main()
{
int t[10],n=10;
printf("输入10个数:");
for(int j=0; j<10; j++)
scanf("%d",&t[j]);
for(int k=0; k<n-1; k++)
{
int max=t[0],pos=0;
for(int j=1; j<n-k; j++)
{
if(t[j]>max)
{
max=t[j];
pos=j;
}
}
printf("%d与%d交换\n",t[n-k-1],t[pos]);
int tem=t[n-k-1];
t[n-k-1]=max;
t[pos]=tem;
p(t,10);
}
printf("小到大排序:");
p(t,10);
return 0;
}