冒泡排序法(从小到大)。输入10个整数,用冒泡排序法将它们从小到大排序后输出。

冒泡排序法(从小到大)。输入10个整数,用冒泡排序法将它们从小到大排序后输出。


#include <iostream>
using namespace std;

void bubbleSort(int arr[], int n) {
    for (int i = 0; i < n - 1; i++) {
        for (int j = 0; j < n - i - 1; j++) {
            if (arr[j] > arr[j + 1]) {
                int temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
            }
        }
    }
}

int main() {
    int arr[10];
    cout << "Enter 10 integers:" << endl;
    for (int i = 0; i < 10; i++) {
        cin >> arr[i];
    }
    bubbleSort(arr, 10);
    cout << "Sorted array:" << endl;
    for (int i = 0; i < 10; i++) {
        cout << arr[i] << " ";
    }
    cout << endl;
    return 0;
}

  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7730627
  • 这篇博客也不错, 你可以看下从键盘上输入10个整数,用冒泡法对这10个数进行排序(由小到大)。
  • 除此之外, 这篇博客: 蒜术师给了你一个 10 个整数的序列,要求对其重新排序。排序要求:中的 蒜术师给了你一个 10 个整数的序列,要求对其重新排序。排序要求: 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 奇数在前,偶数在后;

    奇数按从大到小排序;

    偶数按从小到大排序。

    输入格式
    输入一行,包含 10个整数,彼此以一个空格分开,每个整数的范围是大于等于 0,小于等于 100。

    输出格式
    按照要求排序后输出一行,包含排序后的 10 个整数,数与数之间以一个空格分开。

  • 您还可以看一下 程张浩老师的微信小程序项目实战之我画你猜视频课程课程中的 你猜我画小程序功能分析和数据库设计小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    参考答案:

    使用冒泡排序法从小到大排序:

    #include <stdio.h>
    
    int main() {
        int nums[10];
        // 从键盘输入10个整数
        printf("请输入10个整数:");
        for (int i = 0; i < 10; i++) {
            scanf("%d", &nums[i]);
        }
        // 冒泡排序
        int temp;
        for (int i = 0; i < 9; i++) {
            for (int j = 0; j < 9 - i; j++) {
                if (nums[j] > nums[j+1]) {
                    temp = nums[j];
                    nums[j] = nums[j+1];
                    nums[j+1] = temp;
                }
            }
        }
        // 输出排序后的结果
        printf("排序后的结果为:");
        for (int i = 0; i < 10; i++) {
            printf("%d ", nums[i]);
        }
        printf("\n");
        return 0;
    }
    

    使用折半法查找数字,如果不存在则输出“无此数”:

    #include <stdio.h>
    
    int main() {
        int nums[15];
        // 从键盘输入15个整数
        printf("请输入15个整数:");
        for (int i = 0; i < 15; i++) {
            scanf("%d", &nums[i]);
        }
        // 排序
        int temp;
        for (int i = 0; i < 14; i++) {
            for (int j = 0; j < 14 - i; j++) {
                if (nums[j] > nums[j+1]) {
                    temp = nums[j];
                    nums[j] = nums[j+1];
                    nums[j+1] = temp;
                }
            }
        }
        // 输出排序后的结果
        printf("排序后的结果为:");
        for (int i = 0; i < 15; i++) {
            printf("%d ", nums[i]);
        }
        printf("\n");
        char flag = 'y';
        while (flag == 'y' || flag == 'Y') {
            // 输入要查找的数字
            int target;
            printf("请输入要查找的数字:");
            scanf("%d", &target);
            // 使用折半法查找
            int left = 0, right = 14;
            int mid;
            while (left <= right) {
                mid = (left + right) / 2;
                if (nums[mid] == target) {
                    printf("数字 %d 在数组中的位置为 %d\n", target, mid+1);
                    break;
                } else if (nums[mid] < target) {
                    left = mid + 1;
                } else {
                    right = mid - 1;
                }
            }
            if (left > right) {
                printf("无此数\n");
            }
            // 是否继续查询
            printf("是否继续查询?(y/n)");
            getchar();  // 吃掉换行符
            scanf("%c", &flag);
        }
        return 0;
    }