#include<stdio.h> #include<stdlib.h> int main() { int min(int a,int b); int n; while(scanf("%d",&n),n) { int a[110],s,i,m; for(int i=0;i<n;i++) scanf("%d",&a[i]); m=a[0]; for(i=0,s=0;i<n;i++) { //m=a[0];//式子放到此处,循环时会将a[0]值一直放到m. if(min(m,a[i])<m) { m=min(m,a[i]); s=i; } } a[s]=a[0];a[0]=m; printf("%d",a[0]); for(i=1;i<n;i++) printf(" %d",a[i]); printf("\n"); } system("pause"); return 0; } int min(int x,int y) { x=x<y?x:y; return x; }
使用循环语句时一定要注意循环内的赋值语句的使用。