Postingan lainnya
Buku Ini Koding!
Baru!
Buku ini akan jadi teman perjalanan kamu belajar sampai dapat kerjaan di dunia programming!
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