#include "stdio.h"
#define N 4
main()
{
int i,j,k,temp;
int a[N];
for (i=0;i<N;i++)
scanf("%d",&a[i]);
for (i=0;i<N-1;i++)
{
k=i;
for(j=i+1;j<N;j++)
{
if(a[k]>a[j])
k=j;
}
temp=a[i];
a[i]=a[k];
a[k]=temp;
printf("a[i]=%d\n",a[i]);
printf("a[k]=%d\n",a[k]);
}
for(i=0;i<N;i++)
{
if(i%10==0)
printf("\n");
printf("%5d",a[i]);
}
getch();
}
我给大家模拟试着运行一下吧.
如输入;
45 12 11 49 它们分别对应 a[0] a[1] a[2] a[3]
首先i=0, k=i所以
就是a[0] > a[1] 对应 45比12 得k=j; k=1
继续a[1]> a[2] 对应 45比11 得k=j; k=2
第二个for第一轮循环完成;然后到
temp=a[i] a[i]=a[0]
a[i]=a[k] a[k]=11
a[k]=temp
进行第一个for的第二次循环
i=1;k=i
.........................
a[k]=temp
还是没发现有什么用
#define N 4
main()
{
int i,j,k,temp;
int a[N];
for (i=0;i<N;i++)
scanf("%d",&a[i]);
for (i=0;i<N-1;i++)
{
k=i;
for(j=i+1;j<N;j++)
{
if(a[k]>a[j])
k=j;
}
temp=a[i];
a[i]=a[k];
a[k]=temp;
printf("a[i]=%d\n",a[i]);
printf("a[k]=%d\n",a[k]);
}
for(i=0;i<N;i++)
{
if(i%10==0)
printf("\n");
printf("%5d",a[i]);
}
getch();
}
我给大家模拟试着运行一下吧.
如输入;
45 12 11 49 它们分别对应 a[0] a[1] a[2] a[3]
首先i=0, k=i所以
就是a[0] > a[1] 对应 45比12 得k=j; k=1
继续a[1]> a[2] 对应 45比11 得k=j; k=2
第二个for第一轮循环完成;然后到
temp=a[i] a[i]=a[0]
a[i]=a[k] a[k]=11
a[k]=temp
进行第一个for的第二次循环
i=1;k=i
.........................
a[k]=temp
还是没发现有什么用