数据的交换输出(修改版)


Problem Description
输入n(n<100)个数,找出其中最小的数,将它放在首位,剩下的数保持原来次序不变!
 
nput
输入数据有多组,每组占一行,每行的开始是一个整数n,表示这个测试实例的数值的个数,跟着就是n个整数。n=0表示输入的结束,不做处理。
 

Output
对于每组输入数据,输出交换后的数列,每组输出占一行。
  Sample Input
  
              
                
4 2 1 3 4 5 5 4 3 2 1 0

 
 

Sample Output
              
                
1 2 3 4 1 5 4 3 2
              
                
#include < stdio.h >
#include
< stdlib.h >
void main()
{
int n,i,j;
int num[ 100 ];
int * result[ 100 ];
int minnum;
int index = 0 ;
for (i = 0 ;i < 100 ;i ++ )
result[i]
= malloc( sizeof ( int ) * ( 100 ));
while (scanf( " %d " , & n) && n != 0 )
{

for (i = 0 ;i < n;i ++ )
scanf(
" %d " , & num[i]);
minnum
= num[ 0 ];
for (i = 0 ;i < n;i ++ )
{
if (minnum > num[i])
minnum
= num[i];
}
for (i = 0 ,j = 0 ;i < n;i ++ )
{
if (i == 0 )
{result[index][i]
= minnum;
result[index][
99 ] = n;
}
else
{
if (minnum == num[j])
{
result[index][i]
= num[j + 1 ];
j
++ ;
j
++ ;
}
else
{ result[index][i]
= num[j];
j
++ ;
}
}
}
index
++ ;
}
for (j = 0 ;j < index;j ++ )
{
for (i = 0 ;i < result[j][ 99 ];i ++ )
printf(
" %d " ,result[j][i]);
printf(
" \n " );
}
}

 

你可能感兴趣的:(数据)