题解 | #争夺前五名#

争夺前五名

https://www.nowcoder.com/practice/cd052308a1c44a88ad00255f312c3e14

public class Program { public static void Main() { string inPut = System.Console.ReadLine(); string[] inPutNum = System.Console.ReadLine().Split(" ");

    int num = int.Parse(inPut);

    //思路一:对数组进行冒泡排序
    // for (int i = 0; i < num; i++) {
    //     bool outflag = true;
    //     //每次排序完 最后一位就不用再排 它必定是最大或最小的 具体可看冒泡排序原理
    //     for (int j = 0; j < num - 1 - i; j++) {
    //         //降序
    //         if (int.Parse(inPutNum[j]) < int.Parse(inPutNum[j + 1])) {
    //             string tmp = inPutNum[j];
    //             inPutNum[j] = inPutNum[j + 1];
    //             inPutNum[j + 1] = tmp;
    //             outflag = false;
    //         }
    //     }
    //     //如果某一轮没有发生排序,说明此数组已经有序
    //     if (outflag)
    //         break;
    // }
    // System.Console.Write(inPutNum[0] + " " + inPutNum[1] + " " + inPutNum[2] + " " +
    //                      inPutNum[3] + " " + inPutNum[4]);

    //思路二:每次挑选出最大的数输出,每输出一个就把数组里那个数置为空,防止重复输出

    //外循环5次,输出5个数
    int max = 0, index = -1;
    for (int i = 0; i < 5; i++) {
        //内循环遍历输入的数,每次找出最大的那个
        for (int j = 0; j < num; j++) {
            if (inPutNum[j] != "") {
                if (int.Parse(inPutNum[j]) > max) {
                    max = int.Parse(inPutNum[j]);
                    index = j;
                }
            }
        }
        //输出最大的那个数并把数组里最大的数置为空
        System.Console.Write(max + " ");
        inPutNum[index] = "";
        max = 0;
    }
}

}

全部评论

相关推荐

10-11 17:45
门头沟学院 Java
走吗:别怕 我以前也是这么认为 虽然一面就挂 但是颇有收获!
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务