数组题目

41 阅读1分钟

从键盘上输入5个数字,并对它进行排序从小到大

通过一个for循环,比较相邻两个元素,作交换

#include <stdio.h>
int main(){
	//从键盘上输入5个数字,并对它进行排序从小到大 
	//类型 数组名[个数] 
	int arr[5];
	for(int i=0;i<5;i++){
		scanf("%d",&arr[i]);
	}
        //假设没有交换
	int isswitch = 0;
   	for(int i=0;i<4;i++){
	   for(int j=0; j<4-i; j++){
   		if(arr[j] > arr[j+1]){
   			int temp =arr[j];
   			arr[j] = arr[j+1];
   			arr[j+1]  = temp;
                        isswitch =1;//有交换
			}		
		}
                //如果一次交换都没有发生,说明已经有序了,就不用循环了
               if(isswitch == 0){
               break;
             }
	}
	printf("--------------------\n"); 
   for(int i =0;i<5;i++){
   		printf("%d\n",arr[i]);
   	
   }	
	
}

运行结果如下

image.png