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

/*         
* 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;
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值