Benötige dringend Hilfe.
-
Ein Variabel Name muss immer mit nem Buchstabe beginnen;)
int A1=...;
würde gehen;)
-
Eine Variable muss mit einem Buchstaben beginnen (groß oder klein ist egal, man sollte jedoch groß nur für konstante Werte verwenden) und dann können alle
Buchstaben, Zahlen und der Bindestrich folgen. Es dürfen außerdem keine
Sonderzeichen verwendet werden!
-
also leute ich besitze ein buch und zwar "C++ von A bis Z" von Jürgen Wolf. ich will einfach nur dass das progi eine bestimmte zahl zu einem einem bestimmten buchstaben ausgibt. bei a soll eine 1 ausgegeben werden und bei z ne 26 und alle zahlen die dazwischen liegen mit dem passenden buchstaben...
-
Mal davon abgesehen, dass bei xRe offensichtlich die Grundlagen fehlen, sind einige tipps hier auch nicht das Wahre(Array, Schleife)!
Wenn man eine zahl in einen Buchstaben verwandeln will kann man das so machen:char ch('A'); int input = was auch immer!; char += input;
will man jetzt doch die zahl ausgeben(meinetwegen 0 für A)
dann reicht:ch -= 'A'; int output = (int)ch;
Also nix mit schleifen, arrays und zigtausend mal die gleiche zeile...
Am besten nochmal informieren was ein char eigentlich ist...
-
Hier mal ein Beispiel, wie so etwas aussehen könnte mit if Abfragen.
Ist jetzt sehr sehr einfach geschrieben.
Ich habe bewusst keine Arrays oder sonst was eingesetzt,
denn ich denke die hat er noch nicht gelernt.#include <iostream> using namespace std; int main () { cout << "Bitte Zahl eingeben!" << endl; int ival; cin >> ival; if (ival == 1) cout << "A" << endl; if (ival == 2) cout << "B" << endl; if (ival == 3) cout << "C" << endl; if (ival == 4) cout << "D" << endl; if (ival == 5) cout << "E" << endl; if (ival == 6) cout << "F" << endl; if (ival == 7) cout << "G" << endl; if (ival == 8) cout << "H" << endl; if (ival == 9) cout << "I" << endl; if (ival == 10) cout << "J" << endl; if (ival == 11) cout << "K" << endl; if (ival == 12) cout << "L" << endl; if (ival == 13) cout << "M" << endl; if (ival == 14) cout << "N" << endl; if (ival == 15) cout << "O" << endl; if (ival == 16) cout << "P" << endl; if (ival == 17) cout << "Q" << endl; if (ival == 18) cout << "R" << endl; if (ival == 19) cout << "S" << endl; if (ival == 20) cout << "T" << endl; if (ival == 21) cout << "U" << endl; if (ival == 22) cout << "V" << endl; if (ival == 23) cout << "W" << endl; if (ival == 24) cout << "X" << endl; if (ival == 25) cout << "Y" << endl; if (ival == 26) cout << "Z" << endl; cin.get(); return 0; }
-
QarateKid schrieb:
Mal davon abgesehen, dass bei xRe offensichtlich die Grundlagen fehlen, sind einige tipps hier auch nicht das Wahre(Array, Schleife)!
Wenn man eine zahl in einen Buchstaben verwandeln will kann man das so machen:char ch('A'); int input = was auch immer!; char += input;
will man jetzt doch die zahl ausgeben(meinetwegen 0 für A)
dann reicht:ch -= 'A'; int output = (int)ch;
Also nix mit schleifen, arrays und zigtausend mal die gleiche zeile...
Am besten nochmal informieren was ein char eigentlich ist...Das selbe würde ich dir raten. Überleg dir bei der Gelegenheit auch gleich, was hier nicht das Wahre ist. Einen Datentyp inkrementieren und C-Style-Casts anwenden... Lies in Zukunft wenigstens deinen eigenen Post durch.
Unregistrierter schrieb:
Hier mal ein Beispiel, wie so etwas aussehen könnte mit if Abfragen.
Ist jetzt sehr sehr einfach geschrieben.
Ich habe bewusst keine Arrays oder sonst was eingesetzt,
denn ich denke die hat er noch nicht gelernt.völlig doofer Code...
Was ist denn los? Nur weil er noch keine Arrays kann, unterstützt du ihn noch beim Schreiben von solch dreckigem Code?
@ xRe:
Ich und einige andere haben vorher eine Lösungsmöglichkeit aufgeschrieben, wenn du die beachten willst, kannst du. Wenn du lieber uneinsichtig bleibst und weiterhin deine 26 Buchstaben einzeln ausgeben lassen willst, ist das deine Sache...P.S. Sorry wenn das ein bisschen abschätzig rüberkommt, aber es regt einfach auf, wenn man sich um eine ernsthafte Lösung bemüht, und nachher kommen irgendwelche Noobs, die meinen, Arrays und Schleifen seien schlecht, dabei können sie selber nicht einmal eine einfache Inkrementierung coden...
-
Was ist denn los? Nur weil er noch keine Arrays kann, unterstützt du ihn noch beim Schreiben von solch dreckigem Code?
naja hier würde ich melan recht geben was bringt ihm das wenn er nen code in seinem compiler reinkopiert den er noch nie gesehen hat
damit kann er sich noch zeitlassen bis er bei arrays angekommen ist
wenn man die aufgabe mit mitteln löst die im zur verfügung stehen dann weiß er erstmal wie man das machen kann
-
An Arrays wird er früher oder später eh nicht vorbeikommen. Wieso nicht gleich zeigen, wie es geht? Und wenn man jetzt 2 oder 3 mal das gleiche untereinanderschreiben würde, ginge es ja noch. Aber nicht 26 Male...
-
ja ok, nexus, hab da statt ch halt char geschrieben, kann mal passieren, pardon, du c++ gott. also richtig:
char ch('A'); int input = was auch immer!; ch += input;
Aber ein char ist nichts anderes als ein byte, also eine binäre zahl zw 0 und 256, und das sollte man auch nutzen(besonders wenns nur ums deutsche alphabet geht).
Da braucht man keine Übersetzungstabellen(Arrays) denn die gibt es schon(ASCII).
Ich gehe generell davon aus, dass ein input auch auf seine Richtigkeit geprüft wird (also hier zw 1 und 26 liegt), in welchem Datentyp man den input speichert, spielt eigentlich kaum eine Rolle, Hauptsache er kann ihn speichern also fällt bool selbstverständlich raus...
Dass Schleifen und Arrays schlecht sind, hab ich nie behauptet, sie sind hier nur unnötig(meiner noobschen Meinung nach)!!!
Aber ich bin wahrscheinlich wirklich ein noob, hab noch nie ein int anders gecastet, obwohl ich weiss, dass es eine zeichen-intensivere c++-variante gibt...static_cast<int>, trotzdem kann ich mir die variante in einem C / C++ forum doch aussuchen.
gruß Q
-
Seit wann braucht man für eine Funktion mit Rückgabetyp wie int main() eigentlich keinen Rückgabewert mehr?
-
QarateKid schrieb:
ja ok, nexus, [...] pardon, du c++ gott. also richtig:
(meiner noobschen Meinung nach)!!!
Aber ich bin wahrscheinlich wirklich ein noob, hab noch nie ein int anders gecastet, obwohl ich weiss, dass es eine zeichen-intensivere c++-variante gibt...Dein möchtegern-ironisches Getue kannst du dir auch ruhig sparen. Steh wenigstens zu deinen eigenen Fehlern.
QarateKid schrieb:
sind einige tipps hier auch nicht das Wahre(Array, Schleife)!
Also nix mit schleifen, arrays und zigtausend mal die gleiche zeile...
Am besten nochmal informieren was ein char eigentlich ist...Wenn solche Sachen rauslässt und sich dabei noch unheimlich klug vorkommt, dann sollte man sich wenigstens vergewissern, dass der eigene Code besser ist.
Und das Array habe ich nicht erstellt, damit man die Buchstaben in einer Tabelle hat. xRe versuchte, mehreren Variabeln einen Wert zuzuweisen, also dachte ich, er wollte die Zeichen irgendwo speichern. Verstehst du jetzt, wieso ich Arrays und Schleifen verwendet habe?
Und was das Casten angeht, wir sind hier zufällig im C++-Unterforum, und wenn du jemandem, der C++ und nicht C lernen will, helfen möchtest, dann benutz doch gefälligst auch die entsprechende Variante mit
static_cast<>
. Diese ist übrigens nicht nur zeichenintensiver, sondern hat auch einige Vorteile (mehr Sicherheit).Verwirrter schrieb:
Seit wann braucht man für eine Funktion mit Rückgabetyp wie int main() eigentlich keinen Rückgabewert mehr?
Seit C++. Allerdings nur bei
main()
.
-
Zum Thema ASCII: Nicht alle Zeichentabellen haben die Buchstaben in fortlaufender Abfolge. Wenngleich die Wahrscheinlichkeit, dass ein Anfänger an einem Rechner mit einem solchen Zeichensatz C lernt, eher als gering zu bezeichnen sein dürfte.
-
Verwirrter schrieb:
Seit wann braucht man für eine Funktion mit Rückgabetyp wie int main() eigentlich keinen Rückgabewert mehr?
Das war im Falle von main schon immer der Fall. Erst mit C++ und C99 ist allerdings festgelegt, dass das äquivalent zu einem return 0; ist.
-
Das schrieb aber nicht Nexus
Muss bei C nicht ein
return 0;
stehen? Ich kenn C leider ziemlich schlecht.
-
Nexus schrieb:
Das schrieb aber nicht Nexus
Muss bei C nicht ein
return 0;
stehen? Ich kenn C leider ziemlich schlecht.In C muss keine Funktion ein return enthalten. Allerdings hat die Verwendung des Rückgabewert einer Funktion, die beendet wurde, indem das Ende ihres Blocks erreicht wurde, undefiniertes Verhalten. In C++ ist die bloße Rückkehr ohne return (außer bei main) undefiniertes Verhalten, wenn ein Wert zurückgegeben werden muss.