from TCU
本题要求编写程序,找出给定的N个数中的最小值,并将其与第一个数交换,最后输出交换后的序列。题目保证最小值是唯一的。
输入格式:
输入在第一行中给出一个正整数N(1≤n≤10),第二行给出N个整数,数字间以空格分隔。
输出格式:
在一行中顺序输出交换后的序列,每个整数后跟一个空格。
输入样例:
5
8 2 5 1 4
输出样例:
1 2 5 8 4
#include<stdio.h>
#pragma warning(disable:4996)
int main()
{
int empty = 0, i = 0, n = 0;
//empty最后第一项和最小项交换的中间量
scanf("%d", &n);
if (n >= 1 && n <= 10)
{
int a[10] = { 0 };
for (; i < n; i++)
{
scanf("%d", & a[i]);//输入n个数
}
int min_a = 0, min = a[0];
//min是最小数 默认第一个数最小 min_a是min的下标
for (i = 0; i < n; i++)
{
if (min > a[i])
{
min = a[i];//得出最小数
min_a = i;//得出最小数的下标
}
}
{//最小项和第一项交换
empty = a[0];
a[0] = a[min_a];
a[min_a] = empty;
}
for (i = 0; i < n; i++)
{
printf("%d ", a[i]);//输出结果
}
}
return 0;
}