/*
*程序的版权和版本声明部分:
*Copyright(c)2013,烟台大学计算机学院学生
*All rights reserved.
*文件名称:
*作者:田成琳
*完成日期:2013年 11月22 日
*版本号:v1.0
*对任务及求解方法的描述部分:
*输入描述: 10个整数
*问题描述:输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。
写三个函数; ①输入10个数;②进行处理;③输出10个数。
*程序输出:整理后的十个数,每个数后跟一个空格(注意最后一个数后也有空格)
*问题分析:
*算法设计:
*/
我的程序:
#include<iostream>
using namespace std;
void input(int [],int);
void handle(int [],int);
void output(int [],int);
int main()
{
const int n=10;
int a[n];
input(a,n);
handle(a,n);
output(a,n);
return 0;
}
void input(int a[],int n)
{
for(int i=0;i<n;i++)
cin>>a[i];
}
void handle(int a[],int n)
{
int max,i=0,t,min,z,zd=0,zx=0;
max=a[i];
min=a[i];
for(i=0;i<n;i++)
{
if(max<a[i])
{
max=a[i];
zd=i; //记录最大值的位置
}
if(min>a[i])
{
min=a[i];
zx=i; //记录最小值的位置
}
}
t=a[9];
a[9]=max;
a[zd]=t; //进行值交换
z=a[0];
a[0]=min;
a[zx]=z;
}
void output(int a[],int n)
{
for(int i=0;i<n;i++)
{
cout<<a[i]<<" ";
}
}
运行结果:
心得体会:关键是要比较完大小之后,记录下最大,最小值的位置。