输入5个数,从小到大排序,输出
- 通过一个for循环,比较相邻的两个元素
- 把最大的元素换到数组的最后一个位置
#include <stdio.h>
int main(){
// 从键盘输入5个数,从小到大排序,输出
int arr[5];
for(int i=0;i<5;i++){
scanf("%d", &arr[i]);
}
// 通过一个for循环,比较相邻的两个元素,
// 把最大的元素换到数组的最后一个位置
for(int i=0;i<4-i;i++){
// 假设没有交换
int isSwitch = 0;
for(int j=0;j<4;j++){
// j,j+1
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;
}
for(int k=0;k<5;k++){
printf("%d",arr[k]);
}
printf("\n");
}
}
如果一次交换都没有发生,说明已经有序,就不用再循环了
例:12345二维数组
二维数组
#include <stdio.h>
int main(){
// 二维数组: 方阵,有行有列
// 一种特殊的一维数组:每个元素都是一个一维数组
//int arr[2][3]= {
// {1,2,3},
// {4,5,6}
// };
// 访问元素4
//printf("%d", arr[1][0]);
// 访问元素3
//printf("%d", arr[0][2]);
// int i = 0;
//printf("%d",arr[i][i] +arr[i+1][i+1]);
// 打印输出二维数组
//for(int j=0;j<3;j++){
// printf("%d",arr[0][j]);
//}
// printf("\n");
//printf("%d",arr[1][j]);
int arr[2][3]= {
{1,2,3},
{4,5,6}
};
for(int i=0;i<2;i++){
for(int j=0;j<3;j++){
printf("%-5d",arr[i][j]);
}
printf("\n");
}
}
运行结果如下: