Frage(n) zu Schleifen und Verzwigungen
-
hey ihr,
ich bräuchte dringend Hilfe, da ich nicht viel Zeit habe um mich in c++ einzu arbeiten.
Ich hänge leider an einer sehr "einfachen" Sache.
Ich möchte, wenn mein programm zu ende ist (siehe unten) eine abfrage haben, ob ich noch einmal möchte oder nicht. Wenn ich dann J oder j eingebe, müss mein Programm von vorne beginnen.
Leider weiss ich nicht was ich da verwenden muss (if else, wihle do, do wihle, for?)vielleicht könnte mir einer erst einmal erklären was ich überhaupt benutzen muss, wie die kopf, fuss und besondere kopfgesteuere schleife oder ein zwei mehr seitige verzweigung.
Bitte denkt drann, dass ich nicht keine erfahrung habe, damit ich dies dann auch verstehe müsst ihr dies langsam und bitte ausführlich beschreiben.
kurze info:
Ich arbeite mit borland builder 6 (LEIDER?!?! ^^, muss aba)Ich bedanke mich schon einmal rechtherzlich
gez.
AndyHier mein bisher geschriebenes Programm:
// Nachfolgerzahl und Vorgaengerzahl
#include <stdio.h>
#pragma hdrstop//---------------------------------------------------------------------------
#pragma argsused
int main(){
int zahl, nachfolgerzahlzahl, vorgaengerzahl;printf ("Nachfolgerzahlzahl und Vorgaengerzahl");
printf ("\n\nBitte geben sie eine Zahl ein:");
scanf ("%i", &zahl);nachfolgerzahlzahl = zahl +1;
vorgaengerzahl = zahl -1;printf ("\n\nDie Nachfolgerzahlzahl lautet %i", nachfolgerzahlzahl);
getchar ();printf ("\n\nDie Vorgaengerzahl lautet %i", vorgaengerzahl);
printf ("\n\nMoechten Sie nocheinmal? (J/N)");
// scanf ("%c", &); //was muss ich eig. nach dem & eintragen???getchar ();
return 0; //sollte ihr Fehler haben, wäre es nett, wenn ihr sie mir zeigen könnt}
//---------------------------------------------------------------------------
-
char e;
do
{
//irgendetwas
cout << "Weiter? (J/N)" ;
cin >> e;
}
while(e == 'J' || e == 'j');Beispiel:
#include <iostream> #include <cmath> #include <conio.h> using namespace std; int main() { float x,y,z, erg; char e,o; do { cout << "Bitte erste Zahl eingeben: " ; cin >> x; cout << endl << "Bitte Operator eingeben (+,-,*,/,s[qrt]) : " ; cin >> o; if ( o != 's') { cout << endl << "Bitte zweite Zahl eingeben: " ; cin >> y; cout << endl; } if ( o == '+' || o == '-' || o == '*' || o == '/' || o == 's') { if ( o == '+' ) { erg = x + y; cout << x << " + " << y << " = " << erg << endl; } if ( o == '-' ) { erg = x - y; cout << x << " - " << y << " = " << erg << endl; } if ( o == '*' ) { erg = x * y; cout << x << " * " << y << " = " << erg << endl; } if ( o == '/' ) { if ( y == 0 ) { cout << "Fehler! Division durch 0 nicht moeglich" << endl; } else { erg = x / y; cout << x << " / " << y << " = " << erg << endl; } } if ( o == 's' ) { erg = sqrt(x); cout << "Wurzel aus "<< x << " = " << erg << endl; } } else { cout << "Falscher Operator" << endl ; } cout << "Noch eine Rechnung ausfuehren? (J/N)" ; cin >> e; } while(e == 'J' || e == 'j'); cout << "Hasta la vista, baby"<< endl; getch(); }
-
1. [ cpp] CODE [/cpp]
was is der nachteil am bcb? ich nutz ihn zwar au nich, aber soo schlecht fand ich ihn jz (also damals ^^) au nich.. gibts übrigens auch nen bcb forum so weit ich das in erinnerung hab - aber bin gerad zu faul^^
#include <cstdio> //<stdio.h> ist deprecated #pragma hdrstop //kA - iwas borland spezifisches #pragma argsused //kA - iwas borland spezifisches int main() { //komplett c-style /* guck dir das ma an: #include <iostream> std::cout std::cin std::endl und dann poste den (hoffentlich dann neuen) code noch mal hier... oder du postest den code im C-Forum?! */ int zahl, nachfolgerzahlzahl, vorgaengerzahl; //es ist (in C++) unüblich, variablen so weit im voraus zu deklarieren - und hat au später nachteile, bsp.: /* void fkt () { bla Tvery_big_class ("parameter und so"); int r; std::cin >> r; if (r < 100) return; //raus //hier wird eigtl erst bla gebraucht - so muss es erstellert und zerstört werden - mit Pointern wird das ganze nat. noch klarer - dann brauch man auch jedes ma x zeilen um aus der fkt rauszuspringen, weil man alles noch delete-n muss ^^ }*/ printf ("Nachfolgerzahlzahl und Vorgaengerzahl"); printf ("\n\nBitte geben sie eine Zahl ein:"); scanf ("%i", &zahl); nachfolgerzahlzahl = zahl +1; vorgaengerzahl = zahl -1; printf ("\n\nDie Nachfolgerzahlzahl lautet %i", nachfolgerzahlzahl); getchar (); printf ("\n\nDie Vorgaengerzahl lautet %i", vorgaengerzahl); printf ("\n\nMoechten Sie nocheinmal? (J/N)"); // scanf ("%c", &); //was muss ich eig. nach dem & eintragen??? da gibts in der msdn ne riesen tabelle glaub ich... //aber: char zeichen; scanf ("%c", &c); //sollte gehen, ist aber immernoch C char zeichen; std::cin >> zeichen; //ist C++ /* dann deklarierst du zeichen noch viel weiter oben und machst ne schleife... so: do { //alles, was wiederholt werden soll... std::cin >> zeichen; } while (zeichen == 'J'); */ getchar (); return 0; //kannst du weglassen, macht der compiler von allein - aber schaden tuts auch nicht... }mehr fällt mir erst ma nich ein, was ich dir noch sagen könnte ^^
bb
-
Hey Erhard Henkes,
das was du mir geschrieben hast, wäre das nächste projekt gewesen was ich vor hatte.
Nur leider hilft mir dies gerade nicht weiter, da du das ganze mit iostream geschrieben hast, ich arbeite ja mit stdio.h, im grunde wird dies warscheinlich das selbe sein, nur ich kann dies jetzt nicht für mich nutzen.Kannst du mir vielleicht bitte, genau die selbe funktion in stdio.h schreiben?
So wäre meine erste frage denke ich mal geklärt und ich hätte gleich ein muster für einen Taschenrechner.Wäre echt super von dir
gez.
Andy
-
Kannst du mir vielleicht bitte, genau die selbe funktion in stdio.h schreiben?
Wieso das? Wenn du wirklich C programmieren willst: "ANSI C" ist dein Forum

bb
-
Ich denke so komm ich weiter, nur nun habe ich eine neue frage.
kannst du mir erklären wieso du dies hier schreibst (doofe frage, ich weiss^^) std::cin >> zeichen;
Kann man dies auch irgendwie anders schreiben?ich hab dies jetzt noch einmal geschrieben, nur leider bekomme ich jetzt diese Fehlermeldungen:
[C++ Fehler] Unit1.cpp(10): E2141 Fehler in der Deklarationssyntax
[C++ Fehler] Unit1.cpp(40): E2040 Deklaration nicht ordnungsgemäß abgeschlossen
und mir wird die Zeile "do" angezeigt (kann es an den {} liegen?)// Nachfolgerzahl und Vorgaengerzahl
#include <stdio.h>
#pragma hdrstop//---------------------------------------------------------------------------
#pragma argsused
int main()do
{
int zahl, nachfolgerzahlzahl, vorgaengerzahl;printf ("Nachfolgerzahlzahl und Vorgaengerzahl");
printf ("\n\nBitte geben sie eine Zahl ein:");
scanf ("%i", &zahl);nachfolgerzahlzahl = zahl +1;
vorgaengerzahl = zahl -1;printf ("\n\nDie Nachfolgerzahlzahl lautet %i", nachfolgerzahlzahl);
getchar ();printf ("\n\nDie Vorgaengerzahl lautet %i", vorgaengerzahl);
printf ("\n\nMoechten Sie nocheinmal? (J/N)");
scanf ("%c", &c);char Zeichen;
std::cin >> zeichen;getchar ();
return 0;}
while (Zeichen == 'J';) // geht dies dann auch? (Zeichen == 'J','j')
-
Wieso das? Wenn du wirklich C programmieren willst: "ANSI C" ist dein Forum

oh, hab ich ins falsche Forum gepostet?
wusste ich nicht, sry.öhm ja, dann, öhm, poste ich das zeig mal um, denke ich irgendwie ^^
-
RSS ANSI C
ANSI C FAQ/Archiv
Fragen zu bestimmten Funktionen und Abläufen in C, Benutzung der Standardlibs von C, Zeiger und Strings. Fragen zu >C für Dummies< hier stellen, bitte keine Fragen zu Windows/Linux oder C++!AH ok, also ein dummie bin ich ja is richtig.
c++ ist ja auf c aufgebaut und ich lerne zur zeit c++, warum wieso dürft ihr mich nicht fragen, ich weiss selber, dass das was ich mache im grunde nur c ist. Nach meinem BS lehrer, Ausbildungsvertreter und der IHK soll es aber c++ sein ^^
-
3 Gründe, warum es kein C++ sein KANN:
- printf
- scanf
- #include <stdio.h>printf ("\n\nMoechten Sie nocheinmal? (J/N)"); scanf ("%c", &c); char Zeichen; std::cin >> zeichen;C und C++ mischen ist nat. die schlechteste Lösung....
Also entweder, du verzichtest ganz auf printf und scanf oder auf std::cin und std::cout
Der Fehler kommt, weil du kein #include <iostream>
gemacht hast - genau das brauchst du aber für std::cin und std::coutalso denn... ^^
-
Obwohl ich dir vollkommen Recht gebe das man C++ nicht mit C-Bestandteilen verwässern sollte, bleibt es ja trotzdem weiterhin C++, solange es auch nur einen C++ Bestandteil in dem Programm gibt.
MfG
-
wo ist deine Main klammerung? informier dich mal über lebensdauer variablen abhängig von blöcken..