C Programm Fehler



  • Hallo zusammen

    Ich habe folgenden Code welcher eigentlich laufen sollte (er ist eine Vorlage)

    Nun bringe ich dieses Programm nicht zum laufen.

    Habe ich irgendeine Funktion vergessen oder irgendetwas falsch deklariert.

    Ich bin auf euch angewiesen allein habe ich es nicht herausgefunden....

    ⚠ ⚠ ⚠
    #include <iostream>

    using namespace std;

    bool istSchaltjahr(int einJahr);

    int main() {
    int einJahr;

    cout << "Eingabe einer Jahreszahl: ";
    cin >> einJahr;

    if (istSchaltjahr(einJahr))
    cout << einJahr << " ist ein Schaltjahr." << endl;
    else
    cout << einJahr << " ist KEIN Schaltjahr." << endl;

    return 0;
    }

    bool istSchaltjahr(int einJahr) {
    if (einJahr % 4 == 0) // Regel C
    return true;
    if (einJahr % 100 == 0) // Regel B
    return false;
    if (einJahr % 400 == 0) // Regel A
    return true;
    return false;
    }

    ⚠ ⚠ ⚠

    DANKE 👍 👍 👍



  • was ist das problem? wo happerts?



  • hast du es mal laufen lassen ?

    nach der Abfrage "Eingabe der Jahreszahl" gebe ich eine zahl ein z.B 1965 oder 1990 usw.
    und drücke ENTER
    danach schliesst sich das Fenster ohne mir einen Wert zurückzugeben.

    Es ist sicher nichts mit "Fenster schliesst automatisch" den soweit sind wir in der Berufsschule noch nicht. Der Fehler muss also irgendwo anders liegen.

    Danke . Alex



  • zuerst einmal: die regeln müssen in exakt der umgedrehten reihenfolge in istSchaltjahr stehen.

    den wert kannst du nur lesen, wenn das fenster auch aufbleibt. also einfach in deiner main-funktion vor dem return mal ein "system("pause");" einfügen.

    edit: rächtschraibung



  • A.J schrieb:

    Es ist sicher nichts mit "Fenster schliesst automatisch" den soweit sind wir in der Berufsschule noch nicht. Der Fehler muss also irgendwo anders liegen.

    Doch - genau damit hat es etwas zu tun. Wenn du keine Gegenmaßnahmen vorbereitest, schließt sich das Programmfenster unmittelbar nach der letzten Anweisung.

    (einfachste Lösung - geh' in die Eingabeaufforderung und starte dein Programm von dort aus)

    PS: sfds



  • IHR SEID DIE BESTEN.

    ich habe die Funktionen umgetauscht sowie ein system pause eingefügt.

    klasse. super 🙂 😃

    danke 👎 👎 👎

    Alex



  • Und du bist der beste, wenn du in Zukunft deinen Code in Codetags einschließt :p



  • mikey schrieb:

    Und du bist der beste, wenn du in Zukunft deinen Code in Codetags einschließt :p

    ...und den Fehler beschreibst, denn Laufen lassen ist nicht unser Job (davon ab hätte ich Dir geantwortet "das Programm tut exakt was ich erwarten würde" - was völlig korrekt ist, Dir aber nicht im geringsten geholfen hätte :D)



  • Hier mal eine "deluxe-version" 😉

    // Schaltjahr.cpp : Definiert den Einstiegspunkt für die Konsolenanwendung.
    //
    
    #include "stdafx.h"
    #include <windows.h>
    #include <stdio.h>
    #include <conio.h>
    
    using namespace std;
    
    int _tmain(int argc, _TCHAR* argv[])
    {
    	int jahr = 0;
    	HANDLE hConsoleHandle = GetStdHandle(STD_OUTPUT_HANDLE);
    
    	//SetConsoleTextAttribute(hConsoleHandle, FOREGROUND_BLUE|FOREGROUND_INTENSITY);
    	cout << "**************************\n";
    	cout << "* Schaltjahrpruefer v1.0 *\n";
    	cout << "*                        *\n";
    	cout << "* Autor: Machine         *\n";
    	cout << "**************************\n";
    
    	while(true)
    	{
    		SetConsoleTextAttribute(hConsoleHandle, FOREGROUND_BLUE|FOREGROUND_INTENSITY);
    		cout << "\nAnstatt dem Jahr bitte \"0\"(Null) zum Beenden eingeben.";
    		cout << "\nBitte das zu ueberpruefende Jahr eingeben: ";
    		cin >> jahr;
    
    		if(jahr == 0)
    			break;
    
    		if(jahr % 4 == 0)
    		{
    			if(jahr % 100 == 0)
    			{
    				if(jahr % 400 == 0)
    				{
    					SetConsoleTextAttribute(hConsoleHandle, FOREGROUND_GREEN|FOREGROUND_INTENSITY);
    					cout << "\n" << jahr << " ist ein Schaltjahr!.\n\n";
    				}
    				else
    				{
    					SetConsoleTextAttribute(hConsoleHandle, FOREGROUND_RED|FOREGROUND_INTENSITY);
    					cout << "\n" << jahr << " ist kein Schaltjahr!.\n\n";
    				}
    			}
    			else
    			{
    				SetConsoleTextAttribute(hConsoleHandle, FOREGROUND_GREEN|FOREGROUND_INTENSITY);
    				cout << "\n" << jahr << " ist ein Schaltjahr!.\n\n";
    			}
    		}
    		else
    		{
    			SetConsoleTextAttribute(hConsoleHandle, FOREGROUND_RED|FOREGROUND_INTENSITY);
    			cout << "\n" << jahr << " ist kein Schaltjahr!.\n\n";
    		}
    	}
    
    	return 0;
    }
    

Anmelden zum Antworten