C语言实验——最值
Time Limit: 1000 ms
Memory Limit: 65536 KiB
Problem Description
有一个长度为n的整数序列,其中最大值和最小值不会出现在序列的第一和最后一个位置。
请写一个程序,把序列中的最小值与第一个数交换,最大值与最后一个数交换。输出转换好的序列。
请写一个程序,把序列中的最小值与第一个数交换,最大值与最后一个数交换。输出转换好的序列。
Input
输入包括两行。
第一行为正整数n(1≤n≤10)。
第二行为n个正整数组成的序列。
第一行为正整数n(1≤n≤10)。
第二行为n个正整数组成的序列。
Output
输出转换好的序列。数据之间用空格隔开。
Sample Input
5 2 1 5 4 3
Sample Output
1 2 3 4 5
Hint
Source
注意用变量标记最大值和最小值的下标。
#include<stdio.h> #define H 10 int main(){ int i,n; int a[H]; int x1,x2,max,min; int t1,t2; scanf("%d",&n); for(i=0;i<n;i++){ scanf("%d",&a[i]); } max=a[0]; min=a[0]; for(i=0;i<n;i++){ if(max<a[i]){ max=a[i]; x1=i; } if(min>a[i]){ min=a[i]; x2=i; } } t1=a[0]; t2=a[n-1]; a[0]=min; a[n-1]=max; a[x1]=t2; a[x2]=t1; for(i=0;i<n;i++){ if(i==n-1){ printf("%d\n",a[i]); } else{ printf("%d ",a[i]); } } return 0; }