解题思路:

    运用二维数组在十个数输入的时候,记录下最大数,最小数的值和下标
    循环结束后 交换最大数,最小数。
    打印输出



注意事项:

    注意输出格式。最后的数字后有一个空格
    最小数,最大数要一个个按照顺序互换位置,防止,最大数在数组第一个位置


参考代码:

#include"stdio.h" 
int main(){
	int i,t;  //i循环下标,t用于数的互换 
	int num[10];
	int find[2][2]; //二维数组记录最大数,最小数的值和下标 
	 
	scanf("%d",&num[0]);
	find[0][0]=find[1][0]=num[0];
	
	for(i=1;i<10;i++){
		scanf("%d",&num[i]);
		//循环遍历找出最大数,并记录下其标 
		if(find[0][0]<num[i]){
			find[0][0]=num[i];
			find[0][1]=i;
		}
		//循环遍历找出最小数,并记录下其标 
		if(find[1][0]>num[i]){
			find[1][0]=num[i];
			find[1][1]=i;
		}
	}
	//交换最小数位置 
	if(find[1][1]!=0){
		t=num[0];
		num[0]=find[1][0];
		num[ find[1][1] ]=t;  // find[1][1]为最小数的数组位置下标
		if(find[0][1]==0){    // 最大数的数组位置下标若是,更新最大数的数组位置
		    find[0][1]=find[1][1];
		}
	}
	//交换最大数位置 
	if(find[0][1]!=9){
		t=num[9];
		num[9]=find[0][0];
		num[find[0][1]]=t;
	}
	for(i=0;i<10;i++){
		printf("%d ",num[i]);
	}
	return 0;
}


点赞(0)
 

0.0分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论