任务描述
编写程序在一个数组中选择最小值。
相关知识
为了完成本关任务,需要了解如何在数组一定范围内选择最小值。
编程要求
输入n个整数,找到这批整数的最小值,将最小值和第1个数交换,最后输出这批整数。
测试说明
输入格式:
第一行先给出非负整数n
; 第二行给出n
个整数;
输出格式:
第一行输出将最小值和第1个数交换后的n
个整数。
测试输入:10
66 37 63 7 34 52 23 85 7 10
预期输出:7 37 63 66 34 52 23 85 7 10
#include<stdio.h>
#define N 100
int main()
{
int i,j,k,n;
int a[N];
scanf("%d",&n);
for(i=0; i<n; i++)
{
scanf("%d", &a[i]);
}
i = 0;
k = i;//指向最小数
for(j=i+1; j<n; j++)
{
if(a[j]<a[k])
{
k = j;
}
//交换a[k]和a[k]
}
if(k!=i)
{
int temp = a[k];
a[k] = a[i];
a[i] = temp;
}
for(i=0; i<n; i++)
{
printf("%d ", a[i]);
}
return 0;
}