c语言,从键盘获取任意10个整数存放于数组a中,将其最小的数和最大的数对换,并输出交换后的数组元素。求

如题所述

也看看俺写的。
/*从键盘任意获取10个整数,存放于数组a中,将其最小的数和最大的数对换,并输出交换后的数组元素。*/

#include<stdio.h> //头文件

/*************************函数申明区***********************************/

input(int a[],int n/*数组长度*/);
output(int a[],int n/*数组长度*/);
int max(int a[],int n/*数组长度*/);
int min(int a[],int n/*数组长度*/);

/***********************函数申明区结束***********************************/

/***************************变量定义*************************************/
int Temp,Maxindex,Minindex;
int a[10];

/*********************************************************************************
** 函 数 名: main函数
** 功 能: 主函数
**********************************************************************************/
int main(void)
{
input(a,10);
Maxindex=max(a,10);
Minindex=min(a,10);
Temp=a[Maxindex];
a[Maxindex]=a[Minindex];
a[Minindex]=Temp;
output(a,10);
}
/*********************************************************************************
** 函 数 名: input
** 功 能: 从键盘接收n个数字存入数组中
**********************************************************************************/
input(int a[],int n/*数组长度*/)/*用来输入数组中的各个元素*/
{
int index;
for(index=0;index<n;index++)
{
scanf("%d",&a[index]);/*输入整数*/
}
}
/*********************************************************************************
** 函 数 名: max
** 功 能: 返回数组元素最大值所在的目录索引
**********************************************************************************/
int max(int a[],int n/*数组长度*/) /*返回最大值在数组中的索引*/
{
int index;
int maxindex=0; /*最大值位置先假定为数组中第一个元素*/
for(index=1;index<n;index++)
if(a[index]>a[maxindex])
maxindex=index;
return maxindex;
}
/*********************************************************************************
** 函 数 名: min
** 功 能: 返回数组元素最小值所在的目录索引
**********************************************************************************/
int min(int a[],int n/*数组长度*/) /*返回最小值在数组中的索引*/
{
int index;
int minindex=0; /*最小值位置先假定为数组中第一个元素*/
for(index=1;index<n;index++)
if(a[index]<a[minindex])
minindex=index;
return minindex;
}
/*********************************************************************************
** 函 数 名: output
** 功 能: 输出数组元素最大值和最小值交换后的数组
**********************************************************************************/
int output(int a[],int n/*数组长度*/)/*用来输出数组中的各个元素*/
{
int index;
for(index=0;index<n;index++)
{
printf("%5d",a[index]);
printf("\n");
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-01-07
#include<stdio.h>
int main()
{
int i,a[10],max,min,t;
scanf("%d",&a[0]);
max=min=0;
for(i=1;i<10;i++)
{
scanf("%d",&a[i]);
if(a[i]>a[max]) max=i;
if(a[i]<a[min]) min=i;
}
t=a[max];
a[max]=a[min];
a[min]=t;
for(i=0;i<10;i++)
printf("%d ",a[i]);
printf("\n");
return 0;
}本回答被提问者采纳
第2个回答  2011-01-07
大致过程是,先输入,再比较数组大小,然后change交换,最后输出。
我不会写c语言命令,但意思就这样。
第3个回答  2017-10-21

错啦