输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。要求用3个函数实现,分别为输入10个数、进行处理、输出10个数。要求使用指针的方法进行处理。

 ps:菜鸡小白自己刷题写的代码,如有错误请大家指正

题目描述

输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。要求用3个函数实现,分别为输入10个数、进行处理、输出10个数。要求使用指针的方法进行处理。

输入

用空格隔开的10个整数。

输出

输出进行题目描述操作之后的10个整数,每个整数之后输出一个空格。
请注意行尾输出换行。

#include
void find();
void output();

int a[10]={0};
void input()
{
	for(int i=0;i<10;i++)
	scanf("%d",&a[i]);
}

int main()
{
	input();
	find();
	output();
	
} 
void find()
{
	int* p=a;
	int t=0,minpst=0;		//先寻找数组中最小值的位置  minpst是最小值所在位置 
	
	t=*p;
	for(int j=1;j<10;j++)   //先将数组中第一个元素的值赋给t,使用中间变量与数组中的每一个元素进行比较 
	{						//如遇到比a[0]小的元素,把它的值赋给t,并记录下它的位置 
		if(t>*(p+j))
		{
			t=*(p+j);
			minpst=j;
		}	
	}
	a[minpst]=a[0];			//先把a[0]的值给a[minpst],再把保存在t中的最小值给a[0] 
	a[0]=t;
	
	int k=0,maxpst=0;		//寻找最大值的过程与最小值类似,理解最小值即可理解最大值的寻找过程 
	k=*p;
	for(int j=1;j<10;j++)
	{
		if(k<*(p+j))
		{
			k=*(p+j);
			maxpst=j;
		}
	}
	a[maxpst]=a[9];
	a[9]=k;
	
}
void output()
{
	for(int q=0;q<10;q++)
	printf("%d ",a[q]);	
}​

 运行结果

输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。要求用3个函数实现,分别为输入10个数、进行处理、输出10个数。要求使用指针的方法进行处理。_第1张图片

 

 

 

你可能感兴趣的:(输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。要求用3个函数实现,分别为输入10个数、进行处理、输出10个数。要求使用指针的方法进行处理。)