Skip to main content

Füllen Sie ein Array mit 100 Zufallszahlen (zum Beispiel zwischen 1 und 10.000).

a. Zählen Sie, wie viele Zahlen darin durch 6 teilbar sind.

Hilfe:

  • Restrechnung / Modulo: 9 modulo 4 ergibt (Rest) 1
  • 10 modulo 4 ergibt (Rest) 2
  • 12 modulo 4 ergibt (Rest) 0

b. Ersetzen Sie im Array alle Werte, die durch 5 teilbar sind, durch den Wert 227.

c. Wie oft ist die Zahl 23 in diesem Array enthalten?

d. Geben Sie das Array in zehn Zeilen zu je 10 Werten (Spalten) aus.

1_.cpp
#include <iostream>
#include <cstdlib>
#include <ctime>

using namespace std;

int main()
{
int arr100[100], i, z6 = 0, z23 = 0;

srand(time(NULL));
for (i = 0; i < 100; i++)
{
arr100[i] = rand() % 100 + 1;
cout << arr100[i] << " ";
}
// wie viele Zahlen durch 6 teilbar
for (i = 0; i < 100; i++)
{
if (arr100[i] % 6 == 0)
{
z6++;
}
}
cout << "\n"
<< z6 << " Zahlen sind durch 6 teilbar.\n";

// wenn durch 5 teilbar ersetzen durch 227
for (i = 0; i < 100; i++)
{
if (arr100[i] % 5 == 0)
{
arr100[i] = 227;
}
}
// wie oft die 23?
for (i = 0; i < 100; i++)
{
if (arr100[i] == 23)
{
z23++;
}
}
cout << "\n"
<< z23 << " mal die 23.\n";

for (i = 0; i < 100; i++)
{
printf("%5i", arr100[i]);
if (i % 10 == 9)
{
cout << "\n";
}
}

return 0;
}

alternativ mit Konstante ANZAHL:

1.cpp
#include <iostream>
#include <cstdlib>
#include <ctime>
#define ANZAHL 100

using namespace std;

int main(int argc, char const *argv[])
{
int arr[ANZAHL] = {0}, teilbar6 = 0, vorhanden23 = 0;

srand(time(NULL));

for (int i = 0; i < ANZAHL; i++)
{
arr[i] = rand() % 10000 + 1;
printf("%5i ", arr[i]);

if (arr[i] % 6 == 0)
{
teilbar6++;
}
// b) Ersetzen Sie im Array alle Werte, die durch 5 teilbar sind, durch den Wert 227.
if (arr[i] % 5 == 0)
{
arr[i] = 227;
}
// cout << arr[i] << endl;
// c) Wie oft ist die Zahl 23 in diesem Array enthalten?
if (arr[i] == 23)
{
vorhanden23++;
}
// d) Geben Sie das Array in zehn Zeilen zu je 10 Werten (Spalten) aus.
if (i % 10 == 0 && i != 0)
{
printf("\n");
}
}

printf("\nEs sind %i Werte durch 6 teilbar \n", teilbar6);
printf("Die 23 ist %i x vorhanden ", vorhanden23);

return 0;
}

Füllen Sie ein Array arrNoten[50] mit beliebigen Klausurnoten (0 - 100 P) und geben Sie Sie beste und die schlechteste Note (Standard-Rezept!!!) sowie den Durchschnitt der Werte aus, auf eine Kommastelle gerundet.

#include <iostream>
#include <ctime>
#define ANZAHL 50

using namespace std;

int main()
{
int arrNoten[ANZAHL] = {0}, schlechteste = 0, beste = 0;
float durchSchnitt = 0.0, summe = 0.0;

for (int i = 0; i < ANZAHL; i++)
{
arrNoten[i] = rand() % 101;
if (i == 0)
{
beste = schlechteste = arrNoten[0];
}
else if (arrNoten[i] < schlechteste)
{
schlechteste = arrNoten[i];
}
else if (arrNoten[i] > beste)
{
beste = arrNoten[i];
}
cout << arrNoten[i] << endl;
summe += arrNoten[i];
}

durchSchnitt = summe / ANZAHL;

printf("Durchschnittsnote : %.1f\n", durchSchnitt);
printf("Schlechteste Note %i \n", schlechteste);
printf("Beste Note %i \n", beste);

return 0;
}

Geben Sie alle Noten aus und dazu jeweils den passenden Text Bestanden oder Nicht bestanden, je nach Wert. ("Bestanden" bei mindestens 50%)

Erweiterung: Geben Sie zu den Punkten auch jeweils die Note aus, also 1, 2, 3 usw.

Für diese Aufgaben gelten die CBM-/ Handelskammerrichtlinien.

3.cpp
#include <iostream>
#include <cstdlib>
#include <ctime>

using namespace std;

int main()
{
int arrNoten[50], i, z1 = 0, z2 = 0, z3 = 0, z4 = 0, z5 = 0, z6 = 0;

srand(time(NULL));

for (i = 0; i < 50; i++)
{
arrNoten[i] = rand() % 100 + 1;
cout << arrNoten[i];
if (arrNoten[i] < 50)
cout << " Nicht";
cout << " bestanden mit ";

if (arrNoten[i] >= 92)
{
cout << "1 \n";
z1++;
}
else if (arrNoten[i] >= 81)
{
cout << "2 \n";
z2++;
}
else if (arrNoten[i] >= 67)
{
cout << "3 \n";
z3++;
}
else if (arrNoten[i] >= 50)
{
cout << "4 \n";
z4++;
}
else if (arrNoten[i] >= 31)
{
cout << "5 \n";
z5++;
}
else
{
cout << "6 \n";
z6++;
}
}
cout << "\n"
<< z1 + z2 + z3 + z4 + z5 + z6 << " Ergebenis.";
cout << "\n1: " << z1;
cout << "\n2: " << z2;
cout << "\n3: " << z3;
cout << "\n4: " << z4;
cout << "\n5: " << z5;
cout << "\n6: " << z6;
return 0;
}

alternativ mit Noten als Array :

3_2.cpp
#include <iostream>
#include <cstdlib>
#include <ctime>

using namespace std;

int main()
{
int arrNoten[20], i;
z[6];

srand(time(NULL));

for (i = 0; i < 20; i++)
{
arrNoten[i] = rand() % 100 + 1;
cout << arrNoten[i] << " ";

if (arrNoten[i] >= 92)
{
z[0]++;
}
else if (arrNoten[i] >= 81)
{
z[1]++;
}
else if (arrNoten[i] >= 67)
{
z[2]++;
}
else if (arrNoten[i] >= 50)
{
z[3]++;
}
else if (arrNoten[i] >= 30)
{
z[4]++;
}
else
{
z[5]++;
}
}

for (i = 0; i < 6; i++)
{
cout << "\n " << (i + 1) << ": " << z[i] << " mal";
}
return 0;
}

Es sollen in ein Array „arrZahlen“ beliebig viele Zahlen zwischen 1 und 1.000 eingeben werden können. Ende ist bei Eingabe einer 0, es dürfen aber nur maximal 10.000 Zahlen eingegeben werden.

  • Erstellen Sie ein Teilstruktogramm für die Werteingabe. Beachten Sie dabei die Endebedingungen und den Gültigkeitsbereich der Zahlen! Ungültige Zahlen dürfen nicht akzeptiert werden.
  • Erstellen Sie ein weiteres Teilstruktogramm, das die Anzahl und den Durchschnitt der eingegebenen Werte ermittelt und auf dem Bildschirm ausgibt.
  • Erstellen Sie ein drittes Teilstruktogramm, das Minimum und Maximum der eingegebenen Werte ermittelt und auf dem Bildschirm ausgibt.
  • Kopieren Sie alle Werte, die um +/- 10 vom Durchschnitt abweichen in ein zweites Array. (Da wir noch keine dynamischen Arrays kennen, wählen Sie das Array bitte gleichgroß.)

Lassen Sie das Programm 1000 x würfeln (also Zufallszahlen zwischen 1 und 6 erzeugen) und ermitteln Sie, wie oft jede Zahl gewürfelt wurde.

oder: Damit Sie baldmöglichst an den Lottojackpot kommen, zählen Sie einfach, wie oft jede Zahl zwischen 1 und 49 bei 1.000.000 "Lottoziehungen" vorkommt.

5.cpp
#include <iostream>
#define OG 6
#define UG 1

using namespace std;

int main(int argc, char const *argv[])
{
int arr[6] = {0}, wurf = 0;

srand(time(NULL));

for (int i = 0; i < 1000; i++)
{
wurf = rand() % (OG - UG + 1) + UG;

switch (wurf)
{
case 1:
arr[0]++;
break;
case 2:
arr[1]++;
break;
case 3:
arr[2]++;
break;
case 4:
arr[3]++;
break;
case 5:
arr[4]++;
break;
case 6:
arr[5]++;
break;
}
}

for (int i = 0; i < 6; i++)
{
printf("%i wurde %ix gewuerfelt \n", i + 1, arr[i]);
}

return 0;
}

Erstellen Sie ein Array mit 20 ganzzahligen Elementen, alle mit 0 vorbelegt. Greifen Sie jetzt in einer While-Schleife per Zufallszahl für den Index auf beliebige Elemente zu und tragen Sie dort eine beliebige (zufällige) Zahl zwischen 10 und 255 ein.

Aber es darf auf jedes Element nur einmal zugegriffen werden! Wenn also dort schon eine Zahl steht, darf diese nicht überschrieben werden! Die Schleife muss so oft laufen, bis alle Elemente gefüllt sind; zählen Sie dazu die Anzahl der Durchläufe.

6.cpp
#include <iostream>
#include <cstdlib>
#include <ctime>

using namespace std;

int main()
{
const int arraySize = 20;
int myArray[arraySize] = {0};

srand((time(NULL)));

int count = 0;

while (count < arraySize)
{
int index = rand() % arraySize;

if (myArray[index] == 0)
{
myArray[index] = rand() % 246 + 10;
count++;
}
}

for (int i = 0; i < arraySize; ++i)
{
cout << myArray[i] << " ";
}

cout << "\nAnzahl der Durchlaeufe: " << count << endl;

return 0;
}

Füllen Sie ein Array mit 25 Zufallszahlen zwischen 1 und 100.

Anschließend gibt der Benutzer eine Zahl ein und das Programm gibt aus, ob die eingegebene Zahl im Array vorhanden ist.

Variation 1: Der Benutzer hat 3 Versuche, eine Zahl zu finden, die im Array enthalten ist.

7.cpp
#include <iostream>
#include <ctime>

using namespace std;

int main()
{
int arr[25] = {0}, eingabe = 0;
bool win = false;

srand(time(NULL));

for (int i = 0; i < 25; i++)
{
arr[i] = rand() % 100 + 1;
}

for (int x = 0; x <= 2; x++)
{
cout << "Bitte Zahl raten (1-100)" << endl;
cin >> eingabe;
x++;

for (int i = 0; i < 25; i++)
{
if (eingabe == arr[i])
{
win = true;
}
}
}

if (win == true)
{
cout << "Gewonnen!" << endl;
}
else
{
cout << "Falsch geraten!" << endl;
}

return 0;
}