输入一个正整数(1<=n<=10),再输入n个整数,将它们存入数组a中。求最小值及下标,输出最小值和它所对应的最小下标。交换最小值,将最小值与第一个数交换,输出交换后的n个数。用变量index记录最小值对应的下标,则最小值就是a[index].
#include <stdio.h>
#define MAXN 10
int main(void)
{
int n;
int a[MAXN];
int i;
int index;
printf("Enter n:");
scanf("%d",&n);
printf("Enter %d integers:",n);
for(i=0;i<n;i++){
scanf("%d",&a[i]);
}
//找最小值a[index]
index=0; //假设a[0]是最小值,即下标为0的元素最小
for(i=1;i<n;i++){
if(a[i]<a[index]){ //如果a[i]比假设的最小值还小
index=i; //再假设a[i]是新的最小值,即下标为i的元素最小
}
}
printf("min is %d\tsub is %d\n",a[index],index);
return 0;
}
测试用例:
Enter n:6
Enter 6 integers:2 9 -1 8 1 6
min is -1 sub is 2