1120: 最值交换
Description
有一个长度为n的整数序列。请写一个程序,先把序列中的最小值与第一个数交换,再把最大值与最后一个数交换。输出转换好的序列。 分别编写两个函数MinIndex()和MaxIndex()来计算最小值下标和最大值下标。
int MinIndex(int a[], int n); //函数返回数组a中最小元素的下标
int MaxIndex(int a[], int n); //函数返回数组a中最大元素的下标
数组元素的输出调用函数PrintArr()。
Input
输入包括两行。
第一行为正整数n(1≤n≤10)。
第二行为n个正整数组成的序列,保证没有重复元素。
Output
输出转换好的序列。数据之间用空格隔开。
Sample Input
55 4 1 2 3Sample Output
1 4 3 2 5HINT
Source
#include <stdio.h> #include <stdlib.h> #include <limits.h> int MinIndex(int a[], int n); //函数返回数组a中最小元素的下标 int MaxIndex(int a[], int n); //函数返回数组a中最大元素的下标 int main() { int n; int a[10]; int i; int temp =0; scanf("%d",&n); for(i=0; i<n; i++) scanf("%d",&a[i]); int Minindex = 0; int Maxindex = 0; Minindex = MinIndex(a,n); temp = a[0]; a[0] = a[Minindex]; a[Minindex ]= temp; Maxindex = MaxIndex(a,n); temp = a[n-1]; a[n-1]=a[Maxindex]; a[Maxindex] = temp; for(i=0; i<n; i++) { if(i==0) printf("%d",a[i]); else printf(" %d",a[i]); } return 0; } int MinIndex(int a[], int n) { int i; int Min=INT_MAX; int Minindex = 0; for(i=0; i<n; i++) { if(a[i]<Min) { Min = a[i]; Minindex = i; } } return Minindex; } int MaxIndex(int a[], int n) { int i; int Max=0; int Maxindex = 0; for(i=0; i<n; i++) { if(a[i]>Max) { Max = a[i]; Maxindex = i; } } return Maxindex; }
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
- 上一篇:没有了
- 下一篇:没有了