newbieproblem ^^



  • also wir ham grad angefangen inner schule C und C++ zu lernen
    also folgendes:
    das programm soll einfach nur den durchschnitt berechnen und dann ausgeben ob der prüfungskandidat bestanden hat oder nicht... ich poste das einfach ma hier so rein wie des aussieht:

    #include <iostream.h>
    #include <conio.h>
    main()
    {
    /* Deklarationsteil */
    char kandidat[20], bestanden;
    float deutsch, englisch, physik, mathe, durchschnitt, durchschnitt_1;
    /* Eingabeteil */
    cout<< "\n\nName des Pruefungskandidaten angeben     "; cin>> kandidat;
    cout<< "\n\n\nNote im Fach Deutsch      "; cin>> deutsch;
    cout<< "\n\nNote im Fach Mathematik   "; cin>> mathe;
    cout<< "\n\nNote im Fach Englisch     "; cin>> englisch;
    cout<< "\n\nNote im Fach Physik       "; cin>> physik;
    /* Verarbeitungsteil */
    durchschnitt= ( mathe + deutsch + englisch + physik ) / 4;
    durchschnitt_1 = ( mathe + deutsch ) / 2;
    if ( deutsch == 6 || mathe == 6 || physik == 6 || englisch == 6 )
            bestanden = 'n';
    else
            if ( durchschnitt > 3,5 || durchschnitt_1 > 3,0 )
                    bestanden = 'n';
            else
                    bestanden = 'j';
    /* Ausgabeteil */
    if ( bestanden = 'j' )
            cout<< "\n\n" << kandidat << " Hat die Pruefung bestanden. Herzlichen Glueckwunsch. Durchschnitt: " << durchschnitt;
    else
            cout<< "\n\n" << kandidat << " ist leider durchgefallen. Durchschnitt: " << durchschnitt;
    getch();
    }
    

    sodala jetzt hab ich 2 probleme:
    1. Wenn ich in den namen des prüfungskandidaten ein leerzeichen reinmach (z.b. Hans Meier) dann gibt der den rest gleich aus ohne das ich die noten eingaben kann ..ohne leerzeichen gehts.

    2. egal was ich eingeb ob alle noten 6 sind oder sonstwas oder der schnitt schlöechter iss als er sein darf ... der besteht einfach imm und ich weiss nich wirklcih wodran das jetzt liegt.

    ich hoffe ihr findet zeit mir zu helfen 😞

    mfg g-host



  • Hi,

    schliese dein Programm bitte in [cpp] - Tags ein.



  • ah danke sorry bin neu hier ^^ sachon passiert

    kann mir jetzt jemand helfen ? :p



  • if ( bestanden = 'j' )

    mach "==" statt "=" (Vergleich anstatt Zuweisung)

    wenn du was einlesen mußt , was Leerzeichen enthält nimm am besten cin.getline()



  • ahhhhhlles klar ^^ problem 2 iss gelöst danke ^^

    aber das mit dem cin.getline rall ich net so ganz, sorry :p
    wo kommt das hin ?^^



  • könntest das mit einem string machen:

    #include <iostream> 
    #include <conio.h> 
    #include <string>
    using namespace std;
    int main() 
    { 
    /* Deklarationsteil */ 
    	string kandidat;
    	char bestanden; 
    	float deutsch, englisch, physik, mathe, durchschnitt, durchschnitt_1; 
    /* Eingabeteil */ 
    	cout<< "\n\nName des Pruefungskandidaten angeben "; 
    	getline(cin, kandidat); 
    // ab hier dein restlicher code
    

    <hume sagt>Code-Tags repariert</hume sagt>



  • Bitte den Code in Code-Tags Posten.



  • jo könnt ich aber das würd dem lehere glaub ich dann bissl auffaleen weil wir sollen das ja mit unseren möglichkeiten machnen die wir bis jetzt haben ^^ also kann ichs auch dabei belassen das ich halt ohne leerzeichen machn muss weil das können wir eigentlcih ja noch net 😛

    trotzdem
    danke an alle die mir geholfen haben !! 😛

    mfg g-host



  • Bitte den Code in Code-Tags Posten.

    Ich glaube es reicht, wenn du es einmal schreibst. Er hat es gemacht, allerdings den abschließenden Tag vergessen.



  • sorry aber muss nochma stören ... bin doch net fertig 😑

    neue bedingung iss hinzu gekommen ... der prüfling darf keine 2 5er habe und das sieht dann so aus:

    #include <iostream.h>
    #include <conio.h>
    main()
    {
    /* Deklarationsteil */
    char kandidat[20], bestanden;
    float deutsch, englisch, physik, mathe, durchschnitt, durchschnitt_1;
    /* Eingabeteil */
    cout<< "\n\nName des Pruefungskandidaten angeben     "; cin>> kandidat;
    cout<< "\n\n\nNote im Fach Deutsch      "; cin>> deutsch;
    cout<< "\n\nNote im Fach Mathematik   "; cin>> mathe;
    cout<< "\n\nNote im Fach Englisch     "; cin>> englisch;
    cout<< "\n\nNote im Fach Physik       "; cin>> physik;
    /* Verarbeitungsteil */
    durchschnitt = ( mathe + deutsch + englisch + physik ) / 4;
    durchschnitt_1 = ( mathe + deutsch ) / 2;
    if ( deutsch == 6 || mathe == 6 || physik == 6 || englisch == 6 )
            bestanden = 'n';
    else
            if ( durchschnitt > 3,5 || durchschnitt_1 > 3,0 )
                    bestanden = 'n';
            else
                    if ( deutsch == 5 && mathe == 5 || deutsch == 5 && englisch == 5 || deutsch == 5 && physik == 5 || mathe == 5 && englisch == 5 ||
                         mathe == 5 && physik == 5 || englisch == 5 && physik == 5 )
                            bestanden = 'n';
                    else
                            bestanden = 'j';
    
    /* Ausgabeteil */
    if ( bestanden == 'j' )
            cout<< "\n\n" << kandidat << " Hat die Pruefung bestanden. Herzlichen Glueckwunsch. Durchschnitt: " << durchschnitt;
    else
            cout<< "\n\n" << kandidat << " ist leider durchgefallen. Durchschnitt: " << durchschnitt;
    getch();
    }
    

    der besteht immer noch bei nem schnitt höher wie 3.5 das iss das einzige prob noch

    und bin am verzweifeln^^

    mfg g-host

    edit:

    hat sich erledigt

    musste bei

    if ( durchschnitt > 3,5 || durchschnitt_1 > 3,0 )
    

    statt den kommas punkte machn ^^ anfängerfehler halt ^^

    nochma danke CuZZ


Anmelden zum Antworten