1337 - C语言程序设计教程(第三版)课后习题10.3

通过次数

0

提交次数

0

时间限制 : 1 秒 内存限制 : 128 MB

输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。写三个函数; ①输入10个数;②进行处理;③输出10个数。使用指针

题目输入

10个整数

题目输出

整理后的十个数,每个数后跟一个空格(注意最后一个数后也有空格)

输入/输出样例

输入格式

2 1 3 4 5 6 7 8 10 9

输出格式

1 2 3 4 5 6 7 8 9 10

C++解答

#include<iostream>
using namespace std;
void input(int *p,int n)
{
	for (int i=0; i<n; i++) cin>>p[i];
}
void deal(int *p,int n)
{
	int *max,*min,*q,t;
	max=min=p;
	for (q=p+1; q<p+n; q++)	//查找最小值
		if (*min>*q) min=q;
	t=p[0]; p[0]=*min; *min=t;
	for (q=p+1; q<p+n; q++)	//查找最大值
		if (*max<*q) max=q;
	t=p[n-1]; p[n-1]=*max; *max=t;
}
void output(int *p,int n)
{
	int *q;
	for (q=p; q<p+n; q++) cout<<*q<<" ";
	cout<<endl;
}
int main()
{
	int a[10];
	input(a,10);
	deal(a,10);
	output(a,10);
	return 0;
}