C语言作业

91 阅读2分钟

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(&#34;%d&#34;, &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(&#34;从小到大排序后的结果:\n&#34;);
    for (i = 0; i < 6; i++) {
        printf(&#34;%d &#34;, arr[i]);
    }
    printf(&#34;\n&#34;);

    return 0;
}

运行结果:

image.png

2:输入 6 个整数并用冒泡排序从小到大排序

代码如下

#include 

int main() {
    // 1. 定义数组存储6个整数,temp用于交换元素,i/j为循环变量
    int arr[6];
    int temp, i, j;

    // 2. 提示并输入6个整数
    printf(&#34;请输入6个整数(数字间用空格/回车分隔):\n&#34;);
    for (i = 0; i < 6; i++) {
        scanf(&#34;%d&#34;, &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(&#34;\n排序后的6个整数(从小到大):\n&#34;);
    for (i = 0; i < 6; i++) {
        printf(&#34;%d &#34;, arr[i]); // 逐个打印排序后的元素
    }
    printf(&#34;\n&#34;);

    return 0;
}

运行结果:

image.png