牛骨文教育服务平台(让学习变的简单)
博文笔记

输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。

创建时间:2012-12-04 投稿人: 浏览次数:18763
/*         
* Copyright (c) 2012, 烟台大学计算机学院         
* All rights reserved.         
* 作 者:  刘同宾       
* 完成日期:2012 年 12 月 04 日         
* 版 本 号:v1.0    
*             
* 输入描述:    
* 问题描述:   输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。
*              写三个函数:1、输入10个数。2、进行处理。3、输出10个数 
* 程序输出:
* 问题分析:略        
* 算法设计:略         
*/

#include<iostream>

using namespace std;

int main()
{
	void input(int *a);//函数声明

	void max_min_value(int *a);

	void output(int *a);

	int a[10];             

	input(a);     //调用函数 

	max_min_value(a);

	output(a);

	return 0;
}


//输入函数  
void input(int *a)//形参a为指针变量
{
	int i; 

	cout<<"请输入十个正整数:"<<endl;

	for(i=0;i<10;i++)
	{
		cin>>a[i];
	}
}



//进行处理函数
void max_min_value(int *a)
{
	int *max,*min,*p,temp;

	max=min=a;  //使max和min都指向a[0]

	for(p=a+1;p<a+10;p++)
	{
		if(*p>*max)   //将大数地址赋给max
		{
			max=p;
		}

		else if(*p<*min)  //将小数地址赋给min
		{
			min=p;
		}
	}

	temp=a[0];a[0]=*min;*min=temp;//将最小数与第一个数互换

	if(max==a)  //如果第一个数刚好是最大数,则使max指向该最大数
	{
		max=min;    
	}

	temp=a[9];a[9]=*max;*max=temp;//将最大数与最后一个数交换
}



//输出函数
void output(int *a)
{
	int *p;

	cout<<"处理后为:"<<endl;

	for(p=a;p<a+10;p++)
	{
		cout<<*p<<"  ";
	}

	cout<<endl;

	return;
}

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。