Dein Code ist Fehlerhaft, da du ein binäres UND anstelles des Modulo Operators verwendest.

Davon abgesehen ist dein Code C und nicht C++ und du benutzt die alte rand() Funktion mit extrem schlechter zufälliger Verteilung.

In C++ würde ich es so machen:

#include <iostream> // cout, endl
#include <random> // default_random_engine, random_device, uniform_int_distribution
#include <type_traits> // extent_v

#include <cstdlib> // size_t

int main() {
    using namespace ::std;

    const int values[] { 5, 10, 20, 50, 100, 200 };
    constexpr size_t count { extent_v<decltype(values)> };

    default_random_engine prng { random_device{}() };
    uniform_int_distribution<size_t> choice { 0, count - 1 };

    for (size_t i {}; i < 10; ++i) {
        const auto value { values[choice(prng)] };

        cout << i << " => " << value << endl;
    }
}

Dafür brauchst du aber einen modernen Compiler, der C++17 unterstützt.

Das Programm gibt dir einfach 10 zufällig gewälte Einträge aus deinem Array aus.

Viel Spaß! :)

...zur Antwort
Weitere Inhalte können nur Nutzer sehen, die bei uns eingeloggt sind.