欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-03-10 08:22:30
...
#include<cstdio>
//输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。要求用3个函数实现,分别为输入10个数、进行处理、输出10个数。要求使用指针的方法进行处理。
//编写函数——输入10个数
//编写函数——进行处理
//编写函数——输出10个数

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

void write(int b[]){
	for(int i=0;i<=9;i++){
		printf("%d\n",*(b+i));
	}
}

void process(int c[]){
	//找最大和最小的数
	int max=*c,min=*c;
	int max_no,min_no;
	for(int i=0;i<=9;i++){
		if(c[i]<min){
			min = c[i];
			min_no = i;
		}
		if(c[i]>max){
			max = c[i];
			max_no = i;
		}
	} 
//	printf("最大值%d\n",max);
//	printf("最小值%d\n",min);
	
	//调换位置
	if(max_no==0&&min_no==9){//这是一种特殊情况,正好原数组的最大值在首位,最小值在末尾 
		int special = c[max_no];
		c[max_no] = c[min_no];
		c[min_no] = special;
	}else{
		c[max_no]=c[9];
		c[9]=max;
		c[min_no]=c[0];
		c[0]=min; 
	}
	
}


int main(){
	
	int a[10];
	read(a);
	process(a);
	write(a);
	
	return 0;
}


相关标签: c/c++ PAT