最小数与数列第一个数交换
描述
输入一个正整数n(1< n < 100),再输入n个整数,将最小数
与第一个数交换(若最小数就在第一位,不需要交换),输出
交换后的n个数。
【输入】
第一行输入一个正整数n。
第二行输入n个整数
【输出】
输出交换后的n个整数。
输入输出示例
输入: 5 第二次输入:5 1 2 8 3
输出: 1 5 2 8 3
#include<stdio.h>
#include<math.h>
int main(){
int a[1000];//设定容量。
int n,i,p,temp;
scanf("%d", &n);//输入n使得可以输n个数。
for(i=0;i<n;i++)
{
scanf("%d", &a[i]);//输入这n个数。
}
p = 0;
for(i=1;i<n;i++)//从这堆数中的第2个数开始于第一个数比较
if(a[p]>a[i])//如果ap大于ai,就把第i个数给与p的位置,然后再拿新的p与下一个a【i+1】比较。
p = i;
if(p!=0)//此处把最小的数与第一个数互换位置。
{
temp = a[p];
a[p] = a[0];
a[0] = temp;
}
for(i=0;i<n;i++)//将排好的数组依次输出
printf("%d ", a[i]);
printf("\n");
return 0;
}