Frage von Mizu17, 16

-- C++... Hilfe?

Ich hab diese Aufgabe schon vor Wochen erhalten, hab aber keine Ahnung was das bedeuten soll und wie ich das programmieren soll. Hoffe jemand kann mir hier helfen

"Create an integer for age but don't give it any value. Make it so that only half the time the age user tells you gets actually saved in that integer. Then use that integer in the greeting."

Da ich erst am Anfang von C++ bin, hab ich keine Ahnung was ein integer überhaupt ist

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von TeeTier, Community-Experte für programmieren, 3

Das ist ja eine merkwürdige Aufgabe. Ich hoffe, dein Lehrer / Professor / Dozent hat euch eindringlich darauf hingewiesen, dass die Lösung a) nur kompilierbar ist, wenn man dem Compiler gesagt hat, dass er nicht so kleinlich sein soll, und dass es b) schlicht und ergreifend eine gefährliche Sicherheitslücke darstellt.

Trotzdem hier mal eine Beispiel-Lösung, die nur jedes zweite mal nach dem Alter fragt:

#include <iostream> // cout, endl

#include <cstddef> // size_t

int main(void) {
using namespace std;

for (size_t i = 0; ; ++i) {
int age;

cout << i << ": Enter your age [0 to exit]: ";

if (i & 1) {
cin >> age;

if (0 == age) {
break;
}
} else {
int dummy;
cin >> dummy;
}

cout << i << ": Your age is " << age << endl << endl;
}

cout << "Ende." << endl;
}

Falls du eine Warnung beim Kompilieren erhältst, ist das richtig so und der schrägen Aufgabenstellung geschuldet!

Eine Ausgabe sähe z. B. so aus:

0: Enter your age [0 to exit]: 123
0: Your age is 0

1: Enter your age [0 to exit]: 456
1: Your age is 456

2: Enter your age [0 to exit]: 0
2: Your age is 456

3: Enter your age [0 to exit]: 0
Ende.

Wie du siehst, wird der Stack wiederverwendet.

Fazit: Gewöhne dir so etwas nicht an! Ich hoffe, dein Lehrer / Professor / Dozent hat sich etwas tiefgründiges dabei gedacht! :)

Kommentar von Mizu17 ,

Danke für die Antwort :)

Antwort
von TUrabbIT, 8

Ein integer ist der Datentyp für ganzzahlige Werte, also z.B. für eine Variable 'Alter' in der du nur die Jahre einträgst, ist ein Integer genau das richtige.

Die Aufgabenstellung ist etwas kurios aber machbar, du brauchst zum einen eine Variable "Age" vom Typ integer und eine Nutzereingabe.
Dann bin ich nicht sicher von der Formulierung her ob du nur die Hälfte vom Alter Eintragen sollst oder nur jedes zweite Mal das Alter wirklich speichern.
Das ist je nachdem aber recht einfach machbar z.B. durch einen Zufallswert von 0-9, den du bestimmst und bei >=5 der Wert gespeichert wird und sonst nicht.

Zumindest sollst du zum Schluss den Wert von Age nutzen und in eine Textausgabe einbauen.

Keine passende Antwort gefunden?

Fragen Sie die Community