close
第一題:利用迴圈,讓使勇者連續輸入正整數資料(最多20個),直到輸入-1時,方才結束輸入,並將資料存入一個大小為20的陣列中,然後再把整個陣列資料作排序。(請用插入排序法)

#include <cstdlib>
#include <iostream>
#include <time.h>
#include <math.h>

using namespace std;
int main(int argc, char *argv[])
{  
    int input[20]={0},output[20]={0}; // input:輸入 output:輸出
    int num=0;
    int j,temp,chk;
    int i=0;
    while(i<20){ // 最多20個
    do{                    
    cin >> num;
    }while(num<-1||num==0); //如果輸入的不是正整數或-1 就重新輸入
    if(num==-1) break; // 輸入 -1 跳出
    input[i] = num; // 存入 array
    chk = input[i]; // 把 input 存到另一個變數 , 因為不希望下面的操作影響到原本的陣列
   
    for(j=0;j<=i;j++){ //這個loop在做插入排序
     if(output[j] == 0) output[j] = chk;
     else if(output[j]>chk){
          temp = output[j];
          output[j] = chk;
          chk = temp;
         
          }
    }
    i++;
    }  
    for(j=0;j<i;j++){ //印出輸入的陣列與排序後的結果
    cout << "input["<< j+1 <<"]: " << input[j] << " ";
    cout << "ouput["<< j+1 <<"]: " << output[j] << endl;
   
    }
    system("PAUSE");
    return EXIT_SUCCESS;
}

arrow
arrow
    全站熱搜

    偽新聞新聞雜誌 發表在 痞客邦 留言(0) 人氣()