可以解释一下这个小程序是如何工作的吗
可以解释一下这个小程序是怎么工作的吗?
#include "stdio.h "
void main()
{
int a[10],i,j,k,temp,min;
printf( "Enter 10 numbers:\n ");
for(i=0;i <10;i++)
scanf( "%d ",&a[i]);
for(i=0;i <9;i++)
{
k=i+1;
min=i;
for(j=k;j <10;j++)
if(a[j] <a[min])
min=j;
temp=a[i];
a[i]=a[min];
a[min]=temp;
}
printf( "the sorted numbers:\n ");
for(i=0;i <10;i++)
printf( "%d ",a[i]);
}
------解决方案--------------------
#include "stdio.h "
void main()
{
int a[10],i,j,k,temp,min;
printf( "Enter 10 numbers:\n ");
for(i=0;i <10;i++)
{
scanf( "%d ",&a[i]);
}
for(i=0;i <10;i++)
{
k=i+1;
min=i;
for(j=k;j <10;j++)
{
if(a[j] <a[min])
{
min=j;
}
temp=a[i];
a[i]=a[min];
a[min]=temp;
}
}
printf( "the sorted numbers:\n ");
for(i=0;i <10;i++)
{
printf( "%6d ",a[i]);
}
}
我把你的程序重新跑了一下,修改了一些东东。
------解决方案--------------------
printf( "Enter 10 numbers:\n ");
for(i=0;i <10;i++)
scanf( "%d ",&a[i]);//这里是输入10个数字
for(i=0;i <10;i++) //这里开始排序比较 for(i=0;i <10;i++)
{ {
k=i+1;
min=i; //把i的值依次给min
其实这里也可以不这么写
for(j=k;j <10;j++) for(j=i+1;j <10;j++)
{ {
if(a[j] <a[min]) if(a[j] <a[i])
{ {
min=j; temp=a[j];
} a[j]=a[i];
temp=a[i]; a[i]=temp;
a[i]=a[min];
a[min]=temp;
} }
} }
printf( "the sorted numbers:\n "); //这里就是打印你排好序的结果了
for(i=0;i <10;i++)
printf( "%d ",a[i]);
}
------解决方案--------------------
我这菜鸟 都能看懂 相信LZ 一定行
呵呵
#include "stdio.h "
void main()
{
int a[10],i,j,k,temp,min;
printf( "Enter 10 numbers:\n ");
for(i=0;i <10;i++)
scanf( "%d ",&a[i]);
for(i=0;i <9;i++)
{
k=i+1;
min=i;
for(j=k;j <10;j++)
if(a[j] <a[min])
min=j;
temp=a[i];
a[i]=a[min];
a[min]=temp;
}
printf( "the sorted numbers:\n ");
for(i=0;i <10;i++)
printf( "%d ",a[i]);
}
------解决方案--------------------
#include "stdio.h "
void main()
{
int a[10],i,j,k,temp,min;
printf( "Enter 10 numbers:\n ");
for(i=0;i <10;i++)
{
scanf( "%d ",&a[i]);
}
for(i=0;i <10;i++)
{
k=i+1;
min=i;
for(j=k;j <10;j++)
{
if(a[j] <a[min])
{
min=j;
}
temp=a[i];
a[i]=a[min];
a[min]=temp;
}
}
printf( "the sorted numbers:\n ");
for(i=0;i <10;i++)
{
printf( "%6d ",a[i]);
}
}
我把你的程序重新跑了一下,修改了一些东东。
------解决方案--------------------
printf( "Enter 10 numbers:\n ");
for(i=0;i <10;i++)
scanf( "%d ",&a[i]);//这里是输入10个数字
for(i=0;i <10;i++) //这里开始排序比较 for(i=0;i <10;i++)
{ {
k=i+1;
min=i; //把i的值依次给min
其实这里也可以不这么写
for(j=k;j <10;j++) for(j=i+1;j <10;j++)
{ {
if(a[j] <a[min]) if(a[j] <a[i])
{ {
min=j; temp=a[j];
} a[j]=a[i];
temp=a[i]; a[i]=temp;
a[i]=a[min];
a[min]=temp;
} }
} }
printf( "the sorted numbers:\n "); //这里就是打印你排好序的结果了
for(i=0;i <10;i++)
printf( "%d ",a[i]);
}
------解决方案--------------------
我这菜鸟 都能看懂 相信LZ 一定行
呵呵