排序:
1.从键盘上输入10个数字,并对他们进行排序(从小到大排序),再打印输出
2.交换数组中两个元素的值
3.通过比较相邻元素的大小,并交换,把最大的值放在数组的最后面
4.排序完整版
1.从键盘上输入10个数字,并对他们进行排序(从小到大排序),再打印输出:
(一)代码如下:
#include <stdio.h>
int main(){
// 从键盘上输入10个数字,并对他们进行排序(从小到大排序),再打印输出
// 类型 数组名[个数]
int arr[5];
// 从键盘上输入10个数字
for(int i=0; i<5; i++){
scanf("%d", &arr[i]);
}
printf("----------\n");
// 打印输出
for(int i=0; i<5; i++){
printf("%d", arr[i]);
}
}
(二)运行结果如下:
2.交换数组中两个元素的值:
(一)示例:
(二)代码如下:
#include <stdio.h>
int main(){
int arr[5] = {5,3,2,6,4};
// 排序: 2,3,4,5,6
// 1. 交换数组中两个元素的值!
// {5,3,2,6,4}
// 把下标为0的元素,和下标为1的元素换一下位置? {3,5,2,6,4}
int temp = arr[0]; // temp = 5;
arr[0] = arr[1]; // arr[0] = 3;
arr[1] = temp; // arr[1] = 5
printf("%d", arr[0]);
printf("%d", arr[1]);
}
(三)运行结果如下:
3.(1)通过比较相邻元素的大小,并交换,把最大的值放在数组的最后面
(一)代码如下:
// 2. 通过比较相邻元素的大小,并交换,把最大的值放在数组的最后面
for(int j = 0; j<4;j++){
if(arr[j] > arr[j+1]){
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
for(int i=0;i<5;i++){
printf("%d\n", arr[i]);
}
}
(二)运行结果如下:
(2)改进:
(一)代码如下:
for(int i = 0; i<4;i++){
for(int j = 0; j<4;j++){
if(arr[j] > arr[j+1]){
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
for(int i=0;i<5;i++){
printf("%d", arr[i]); // 3 4 2 5 6
}
}
(二)运行结果如下:
4.排序完整版:
(一)代码如下:
#include <stdio.h>
int main(){
// 从键盘上输入5个数字,并对他们进行排序(从小到大
// 类型 数组名[个数]
int arr[5];
// 从键盘上输入5个数字
for(int i=0; i<5; i++){
scanf("%d", &arr[i]);
}
for(int i=0; i<4; i++){
for(int j=0; j<4; j++){
// 把大的放在后面
if(arr[j] > arr[j+1]){
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
printf("----------\n");
// 打印输出
for(int i=0; i<5;i++){
printf("%d\n",arr[i]);
}
}
(二)运行结果如下: