交换输出
输入n(n<100)个数,找出其中最小的数,将它与最前面的数交换后输出这些数。(如果这个第一个数就是最小的数,则保持原样输出,如果最小的数有相同的按照前面的交换)
题目具体信息 http://acm.nyist.net/JudgeOnline/problem.php?
1 #include<stdio.h> 2 int main() 3 { 4 int n,i,j,t,a[100],min; 5 while(scanf("%d",&n)!=0) 6 { 7 if(n==0) 8 break; 9 j=0;//必须要对j赋值为0 10 for(i=0;i<n;i++) 11 scanf("%d",&a[i]); 12 min=a[0]; 13 for(i=0;i<n;i++) 14 { 15 if(a[i]<min) 16 { 17 min=a[i];//找出最小的值 18 j=i; 19 } 20 } 21 t=a[0];//把最小的值与第一个互换 22 a[0]=a[j]; 23 a[j]=t; 24 for(i=0;i<n;i++) 25 printf("%d ",a[i]); 26 printf("\n"); 27 } 28 return 0; 29 }