题目描述:
先输入n表示有n个数字,再在下一行输入这n个数。找出其中最小的数,并与第一个值交换。若第一个数为最小值则不交换。
输入
输出示例;
输入 | 输出 | |
3 3 2 1 | 1 2 3 | |
5 5 9 7 8 1 | 1 9 7 8 5 |
代码:
#include<stdio.h>
int main(){
int n,a[100],i,x=0,min;
scanf("%d\n",&n); //输入个数
for (i=0;i<n;i++){
scanf("%d",&a[i]);//循环输入这n个数
}
min=a[0];//将最小量赋值为第一项,方便比较
for(i=1;i<n;i++){
if(a[i]<min){
min=a[i];x=i;//进入循环比较并找出最小值
}
}
i=a[x];//将最小值与第一项交换
a[x]=a[0];
a[0]=i;
for(i=0;i<n;i++){
printf("%d ",a[i]);//输出
}
return 0;
}
解题思路:因题目要求,首先循环输入n个数,后逐个将数组中的各各数值进行比较找到最小值,如果找到最小值那么输出的值min就是最小值。