题解 | #争夺前五名#
争夺前五名
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; } }
}