大衆審査員大作戦(c言語版)

9389 ワード

大衆審査員大作戦
大衆審査員大作戦あるバラエティオーディション番組では、N(N<=1000)個の大衆審査員を招待して選手に点数をつけた.採点の客観性と公正性を保証するため、監督チームは各審査員に1からNまで番号を付け、まずコンピュータでK個の1からNまでの間のランダム整数を生成し、その中で繰り返される数字に対して1つだけ残し、残りの同じ数を除いて、異なる数は異なる審査員番号に対応している.それからこれらの数を小さいものから大きいものに並べ替えて、並べた順番に該当する番号の審査員を探して点数をつけます.監督チームのアルゴリズム作成に協力して採点を完了してください.入力形式:
各グループに2行、1行目に1つの正の整数を入力し、生成された乱数の個数Kを表し、2行目にK個のスペースで区切られた正の整数を入力し、生成された評価者番号の乱数とする.出力フォーマット:
各グループの出力も2行であり、1行目は1つの正の整数Mであり、異なる乱数の個数を表す.第2の動作Mは、スペースで区切られた正の整数であり、小さいときから大きい順に並べられた異なる審査員番号である.サンプルを入力:
ここに入力のセットを示します.例:
10 24 45 32 67 45 24 89 300 410 15
出力サンプル:
ここでは、対応する出力が与えられます.例:
8 15 24 32 45 67 89 300 410
#include 
#include 

int main()
{
    int k,num[1000],i,j,temp,sum=0,out[1000],no=0;
    scanf("%d",&k);
    for(i=0;i<k;i++){
        scanf("%d",&num[i]);
    }
    for(i=0;i<k-1;i++){
             for(j=i+1;j<k;j++){
                 if(num[i]>num[j]){
                    temp=num[i];
                    num[i]=num[j];
                num[j]=temp;
                 }
             }
    }
    for(i=0;i<k;){
        no=sum;
        if(i!=0){
            for(j=0;j<no;j++){
                if(out[j]==num[i]){
                    goto loop;
                }
            }
        }
        out[sum]=num[i];
        sum++;
        loop:i++;
    }
    printf("%d
"
,sum); for(i=0;i<sum;i++){ if(i==sum-1){ printf("%d",out[i]); break; } printf("%d ",out[i]); } return 0; }