1025: C語言程序設計教程(第三版)課後習題7.4

題目描述

已有一個已排好的9個元素的數組,今輸入一個數要求按原來排序的規律將它插入數組中。

輸入

第一行,原始數列。 第二行,需要插入的數字。

輸出

排序後的數列

樣例輸入 Copy

1 7 8 17 23 24 59 62 101
50

樣例輸出 Copy

1
7
8
17
23
24
50
59
62
101
這裏的排序並沒有說是正序還是逆序所以兩個都要考慮,這題通過率很低,應該都栽這了。

import java.util.Scanner;
public class Main {
	public static void main(String[] args) {
		int[] a=new int[10];
		Scanner s=new Scanner(System.in);
		for(int i=0;i<10-1;i++) {
			a[i]=s.nextInt();
		}
		boolean flag = true;
		for(int i=0;i<10-1-1;i++) {
			if(a[i]>a[i+1]) {
				flag=false;
			}
		}
		int number=s.nextInt();
		for(int i=0;i<10-1;i++) {
			if(flag==true) {
				if(number<a[0]) {
					for(int j=9;j>0;j--) {
						a[j]=a[j-1];	
					}
					a[0]=number;
				}
				else if(number>a[8]) {
					a[9]=number;
				}
				else if(number>=a[i]&&number<a[i+1]) {
					for(int j=9;j>i;j--) {
						a[j]=a[j-1];
					}
					a[i+1]=number;
					break;
				}
			}		
			else if(flag==false) {
				if(a[8]>number) {
					a[9]=number;
				}
				else if(a[0]<number) {
					for(int j=9;j>0;j--) {
						a[j]=a[j-1];
					}
					a[0]=number;
				}
				else if(number<=a[i]&&number>a[i+1]) {
					for(int j=9;j>i;j--) {
						a[j]=a[j-1];
					}
					a[i+1]=number;
					break;
				}
			}
		}			
		
		for(int i=0;i<10;i++) {
			System.out.println(a[i]);
		}
		s.close();
	}

}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章