ページ 11

朝礼係ランダム決め

Posted: 2019年7月03日(水) 23:52
by ともたかtomotaka
1班10人、1日あたり2人が朝礼と終礼を担当する。
10人をランダムに並べ、2人ずつ月、火、水、木、金と割り当てる。
これで動きますか?
説明雑ですいません

コード:

#include<iostream>
#include<string>
#include<time>
#include<stdio>
using namespace std;

int main(void){
    int num=10/*班員数*/,i=0,r=0;
    string A[] = {"ちこ","しん","ひま","たろ","だい","めい","たら","のり","しげ","まい"};
    string B[num-1];
    srand((unsigned long)time(NULL));
    
    for(i=0;i<num;i++){
        r = rand()%(num-i);
        B[i] = A[r];           /*ランダムに班員の1人をB配列に詰める*/
        
        while(r < num){
            A[r] = A[r+1];      /*選ばれた班員の席を詰める*/
            r++;
        }
    }
    
    cout<<"朝礼・終礼の担当は"<<endl;
    
    for(i=0;i<num;i+=2){
        cout<<""<<i<<"|"<<B[i]<<" "<<B[i+1]<<" "<<endl;
    }
    
    return 0;
}


Re: 朝礼係ランダム決め

Posted: 2019年7月04日(木) 03:50
by かずま
ともたかtomotaka さんが書きました:
1年前
これで動きますか?
コンパイルできないので動きません。
コンパイルしたときのエラーメッセージにしたがって修正してください。

それから、なぜ、string B[num-1]; にしたんですか?
配列は、int a[10]; と要素を 10個確保して、
a[0]~a[9] のように使用します。