Postingan lainnya
Perulangan for saya tidak sesuai dengan yang saya harapkan
Program ini membagi orang ke dalam grup, tapi saat saya buat orangnya 5 dan grup 2. hasil keluarannya jadi 3 orang dan 1 orang, sedangkan 1 orang lagi tidak keluar. saya ekspeknya 3 orang dan 2 orang
#include <iostream>
#include <algorithm>
#include <conio.h>
#include <vector>
#include <time.h>
using namespace std;
int main()
{
int jumlah_orang, jumlah_kelompok, jumlah_kelompok_iterasi;
char user3;
vector<string> names;
vector<string> names_team;
string nama, nama_kelompok;
srand(time(NULL));
do
{
system("cls");
cout << "Jumlah Orang: "; cin >> jumlah_orang;
cout << "Jumlah Kelompok: "; cin >> jumlah_kelompok;
jumlah_kelompok_iterasi = jumlah_kelompok;
if(jumlah_kelompok <= jumlah_orang )
{
if(jumlah_kelompok == 1)
{
system("cls");
cout << "Maaf, tidak bisa membagi ke dalam kelompok,\n";
cout << "Mohon gunakan Random Picker 1 Nama!\n\n";
}
else
{
cin.ignore();
system("cls");
cout << "List Nama:\n";
for(int i = 0; i < jumlah_orang; i++)
{
cout << "Nama ke-" << i+1 << ": ";
getline(cin, nama);
names.push_back(nama);
}
system("cls");
cout << "List Kelompok:\n";
for(int i = 0; i < jumlah_kelompok; i++)
{
cout << "Nama Kelompok " << i+1 << ": ";
getline(cin, nama_kelompok);
names_team.push_back(nama_kelompok);
}
system("cls");
cout << "Data telah disimpan!\n";
cout << "Tekan Enter untuk mengacak Data";
cin.ignore();
system("cls");
for(int i = 0; i < jumlah_kelompok; i++)
{
cout << names_team[i] << ":\n";
if(jumlah_orang > jumlah_kelompok)
{
if(jumlah_orang % jumlah_kelompok == 0)
{
for(int j = 0; j < (jumlah_orang / jumlah_kelompok); j++)
{
int random_name = rand() % names.size();
cout << j + 1 << ". " << names[random_name] << endl;
auto iter_nama = find(names.begin(), names.end(), names[random_name]);
if(iter_nama != names.end())
{
names.erase(iter_nama);
}
}
}
else
{
// random nama lebih kurang
for(int j = 0; j < 1; j++)
{
if(names.size() % jumlah_kelompok_iterasi == 0)
{
for(int k = 0; k < names.size() / jumlah_kelompok_iterasi; k++)
{
int random_name = rand() % names.size();
cout << k + 1 << ". " << names[random_name] << endl;
auto iter_nama = find(names.begin(), names.end(), names[random_name]);
if(iter_nama != names.end())
{
names.erase(iter_nama);
}
}
}
else
{
for(int k = 0; k < ((jumlah_orang / jumlah_kelompok) + 1); k++)
{
int random_name = rand() % names.size();
cout << k + 1 << ". " << names[random_name] << endl;
auto iter_nama = find(names.begin(), names.end(), names[random_name]);
if(iter_nama != names.end())
{
names.erase(iter_nama);
}
}
}
}
} // end
}
else if (jumlah_orang = jumlah_kelompok)
{
int random_name = rand() % names.size();
cout << "1. " << names[random_name] << endl;
auto iter_nama = find(names.begin(), names.end(), names[random_name]);
if(iter_nama != names.end())
{
names.erase(iter_nama);
}
}
jumlah_kelompok_iterasi = jumlah_kelompok_iterasi - 1;
cout << endl;
}
}
}
else
{
cout << "Jumlah kelompok harus lebih sedikit dari jumlah orang!\n";
}
cout << "Ulang Program? (Y/T): ";
cin >> user3;
}
while(user3 == 'Y' || user3 == 'y');
getch();
}
0
Belum ada Jawaban. Jadi yang pertama Jawaban
Login untuk ikut Jawaban