数组:交换位置
找到数组中最小的元素,并与数组首个元素交换位置。如果有多个最小元,取数组中首次出现的交换
输入样例
4
1 -6 3 -6
输出样例
-6 1 3 -6
??这里你们应该觉得这写的什么玩意 ,这么复杂,没办法 ,那是我第一次写博客,水平也低 ,只能说这是自己最最最朴素的写法啦 ,见笑了 ,想删掉又觉得太可惜 ,就留在这了 ,
那这题 可以直接找到最小元的位置,用个c++swap一下就可以了~~
**#include <stdio.h>
int main()
{
int a[100], n, i, j;
scanf("%d", &n);
for (i = 0; i < n; i++)//循环输出数值
{
scanf("%d", &a[i]);
}
int min = a[0];
for (i = 1; i <= n - 1; i++)//循环判断大小
{
if (a[i] < min)
{
min = a[i];
j = i;
// 如果有多个最小元,取数组中首次出现的交换。什么意思?不是以第一次出现替换吗
}
}
int t = a[0];
if (min != a[0])//分情况来:1.a一直最小就原样输出,2::不然交换顺序输出
{
a[0] = min;
a[j] = t;
for (i = 0; i <= n - 1; i++)##
{
printf("%d ", a[i]);
continue;
}
}
else
{
for (i = 0; i <= n - 1; i++)
printf("%d ", a[i]);
}
return 0;
}**