1120: 最值交换

来源:互联网 发布:淘宝上传图片模糊 编辑:程序博客网 时间:2024/06/01 23:59

1120: 最值交换

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 4765  Solved: 2076

SubmitStatusWeb Board

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 3

Sample Output

1 4 3 2 5

HINT

Source

#include<stdio.h>int zuida(int a[],int n);int zuixiao(int a[],int n);int shuchu(int a[],int min,int max,int n);int main(){    int a[10],i,j1,n,min,max,j;    j=j1=0;    scanf("%d",&n);    for(i=0; i<n; i++)        scanf("%d",&a[i]);    min=zuixiao(a,n);    j=a[0];    a[0]=a[min];    a[min]=j;    max=zuida(a,n);    j1=a[n-1];    a[n-1]=a[max];    a[max]=j1;    shuchu(a,min,max,n);    return 0;}int zuixiao(int a[],int n){    int i,min,c;    c=0;    min=a[0];    for(i=1; i<n; i++)    {        if(min>a[i])        {            min=a[i];            c=i;        }    }    return c;}int zuida(int a[],int n){    int i,c,max;    c=0;    max=a[0];    for(i=1; i<n; i++)    {        if(max<a[i])        {            max=a[i];            c=i;        }    }    return c;}int shuchu(int a[],int min,int max,int n){    int i;    for(i=0; i<n-1; i++)        printf("%d ",a[i]);    printf("%d",a[n-1]);}

原创粉丝点击