本题要求编写程序,先将输入的一系列整数中的最小值与第一个数交换,然后将最大值与最后一个数交换,最后输出交换后的序列。
注意:题目保证最大和最小值都是唯一的。
输入格式:
输入在第一行中给出一个正整数N(≤10),第二行给出N个整数,数字间以空格分隔。
输出格式:
在一行中顺序输出交换后的序列,每个整数后跟一个空格。
输入样例:
5
8 2 5 1 4
输出样例:
1 2 5 4 8
自己写的
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{int i,a,max=0,min=10000000,k,time_min,time_max;scanf("%d",&k);int arr[k];for(i=0;i<k;i++){scanf("%d",&a);arr[i]=a;if(min>a){min=a;time_min=i;}}arr[time_min]=arr[0];arr[0]=min;for(i=0;i<k;i++){if(max<arr[i]){max=arr[i];time_max=i;}}arr[time_max]=arr[k-1];arr[k-1]=max;for(i=0;i<k;i++)printf("%d ",arr[i]);return 0;
}
老师写的
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>int main()
{int n;scanf("%d", &n);int a[n];for (int i = 0; i < n; i++){scanf("%d", a[i]);}int mini = 0;for (int i = 0; i < n; i++){if (a[i] < a[mini]){mini = i;}}int tmp;tmp = a[0];a[mini] = tmp;int maxi = 0;for (int i = 0; i < n; i++){if (a[i]> a[maxi]){maxi = i;}}tmp = a[n - 1];a[n - 1] = a[maxi];a[maxi] = tmp;for (int i = 0; i < n; i++){printf("%d", a[i]);}return 0;
}