#include<stdio.h> int main(){ int n,a[101],i,j,temp,min,k; scanf("%d",&n); for(i = 0;i < n;i++){ scanf("%d",&a[i]); } //找到最小的值 min = a[1]; //假设第二个元素为最小元素 for(j = 2;j < n;j++){ if(a[j] < min) min = a[j]; } //因为是从左边开始循序,所有如果发现与最小值相等的元素,就停下,当前的下标就是交换的下标 for(j = 1;j < n;j++){ if(a[j] == min){ k = j;//最小值最早出现的下标 break; } } if(a[0] >= a[k]){ temp = a[0]; a[0] = a[k]; a[k] = temp; }else{ k = 0; } printf("%d\n",k+1) ; for(i = 0;i<n;i++){ printf("%d ",a[i]); } return 0; } /************************************************************** Problem: 1157 User: admin Language: C Result: Accepted Time:10 ms Memory:1144 kb ****************************************************************/