1:输入 6 个整数并找出最大值
第一步:在键盘找到6个整数,我就不演示了
第二步:打出代码
#include
int main() {
int arr[6], temp;
int i, j;
int is_sorted; // 标志位:是否已排序
printf("请输入6个整数(用空格/回车分隔):\n");
for (i = 0; i < 6; i++) {
scanf("%d", &arr[i]);
}
for (i = 0; i < 5; i++) {
is_sorted = 1; // 初始假设已排序
for (j = 0; j < 5 - i; j++) {
if (arr[j] > arr[j + 1]) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
is_sorted = 0; // 发生交换,说明未排序
}
}
if (is_sorted) {
break; // 无交换,提前退出循环
}
}
printf("从小到大排序后的结果:\n");
for (i = 0; i < 6; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
运行结果:
2:输入 6 个整数并用冒泡排序从小到大排序
代码如下
#include
int main() {
// 1. 定义数组存储6个整数,temp用于交换元素,i/j为循环变量
int arr[6];
int temp, i, j;
// 2. 提示并输入6个整数
printf("请输入6个整数(数字间用空格/回车分隔):\n");
for (i = 0; i < 6; i++) {
scanf("%d", &arr[i]); // 逐个读取整数存入数组
}
// 3. 冒泡排序核心逻辑(从小到大)
// 外层循环:控制排序轮数(6个元素最多需要5轮,n个元素需n-1轮)
for (i = 0; i < 5; i++) {
// 内层循环:每轮比较相邻元素,已排序的末尾无需重复比较
// 每轮结束后,末尾i个元素已排好序,因此比较次数为 5 - i
for (j = 0; j < 5 - i; j++) {
// 前一个数 > 后一个数 → 交换两者,实现升序
if (arr[j] > arr[j + 1]) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
// 4. 输出排序后的结果
printf("\n排序后的6个整数(从小到大):\n");
for (i = 0; i < 6; i++) {
printf("%d ", arr[i]); // 逐个打印排序后的元素
}
printf("\n");
return 0;
}
运行结果: