c++,大佬过来看看啊啊啊

2. 编程实现输入10个整数放入数组中,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。除了main函数,另写出三个函数,功能分别是:输入10个数;进行处理;输出10个数(使用指针实现)。

 

 【样例输入】

 

input 10 numbers:1 2 3 4 5 6 7 8 9 0

 

 

 

【样例输出】

 

now,they are:0 2 3 4 5 6 7 8 1 9

代码如下,如有帮助,请采纳一下,谢谢。

#include <stdio.h>

void inputfun(int a[],int n)
{
	int i = 0;
	printf("请输入%个整数:");
	for (i = 0; i < n; i++)
	{
		scanf("%d",&a[i]);
	}
}
void Change(int a[],int n)
{
	int max,min;
	int i,j,maxindex = 0,minindex = 0;
	max = a[0];
	min = a[0];
	for (i = 1; i < n; i++)
	{
		if(a[i] > max)
		{
			max = a[i];
			maxindex = i;
		}
		if (a[i] < min)
		{
			min = a[i];
			minindex = i;
		}

	}
	//最小数与第一个交换
	j = a[0];
	a[0] = min;
	a[minindex] = j;

	if (maxindex == 0)
	{
		maxindex = minindex;
	}
	j = a[n-1];
	a[maxindex] = j;
	a[n-1] = max;
}

void outputfun(int a[],int n)
{
	int i = 0;
	for(i = 0; i < n; i++)
		printf("%d ",a[i]);
	printf("\n");
}

void main()
{
	int a[10];
	inputfun(a,10);
	Change(a,10);
	outputfun(a,10);
	return;
}

 

#include<stdio.h>
#include<stdlib.h>
#pragma warning(disable:4996)
int main(){
	void *input(int *p,int n);
	int array[10];
	int n = sizeof(array)/4;
	printf("n的值是%d\n", n);
	input(array,n);
	printf("数组从大到小排序后:\n");
	for (int i = 0; i < n; i++){
		printf("%d ",*(array+i));
	}
	printf("将最大数和最后一个数交换,将最小数和第一个数交换后:\n");
	int temp;
	temp = *array;
	*array = *(array + n - 1);
	*(array + n - 1) = temp;
	for (int i = 0; i < n; i++){
		printf("%d ", *(array + i));
	}
	system("pause");
	return 0;
}
void *input(int *p,int n){
	int* sort(int *p,int n);
	int *newP = p;
	int *newarray;
	printf("请输入10个整数:\n");
	for (int i = 0; i < n;i++)
		scanf("%d",p++);
	printf("函数输入完成。\n");
	newarray = sort(newP,n);
}
int *sort(int *p,int n){
	int *tempP = p;
	for (int i = 0; i < n-1; i++){
		for (int j = 0; j < n - i - 1; j++, p++){
			int temp = 0;
			if ((*p)<*(p + 1)){
				temp = *p;
				*p = *(p + 1);
				*(p + 1) = temp;
			}
		}
		p = tempP;
	}
	return p;
}