输入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; }

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