1 条题解

  • 0
    @ 2026-9-16 22:56:18

    这道题其实很简单,直接遍历找就行。

    但是我这里想给你们科普一下冒泡排序。

    首先是最基础的写法。

    你每次输入的数都进行一次比较,只要更小就替换。

    #include<stdio.h>
    
    int main(){
        int n;
        scanf("%d", &n);
        
        int min = 1000000000;  // 初始化为一个足够大的数
        for(int i = 0; i < n; i++) {
            int a;
            scanf("%d", &a);
            if(a < min) min = a;
        }
        
        printf("%d", min);
        return 0;
    }
    
    

    然后就是冒泡排序,排完序是从小到大的顺序,只需要输出第一个数字就好了

    #include<stdio.h>
    
    int main(){
        int n;
        int a[1005];  // 根据题目数据范围开足够大
        scanf("%d", &n);
        
        for(int i = 0; i < n; i++) {
            scanf("%d", &a[i]);
        }
        
        // 冒泡排序:从小到大
        for(int i = 0; i < n - 1; i++) {
            for(int j = 0; j < n - 1 - i; j++) {
                if(a[j] > a[j+1]) {
                    int temp = a[j];
                    a[j] = a[j+1];
                    a[j+1] = temp;
                }
            }
        }
        
        printf("%d", a[0]);  // 排序后第一个就是最小值
        return 0;
    }
    
    

    信息

    ID
    554
    时间
    1000ms
    内存
    256MiB
    难度
    4
    标签
    (无)
    递交数
    107
    已通过
    47
    上传者