Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Informatik in der Schule » C: Programm zu Schaltjahren stürzt ab » Antwort erstellen » Hallo Gast [Anmelden|Registrieren]

Antwort erstellen
Benutzername: (du bist nicht eingeloggt!)
Thema:
Nachricht:

HTML ist nicht erlaubt
BBCode ist erlaubt
Smilies sind erlaubt
Bilder sind erlaubt

Smilies: 21 von 33
smileWinkDaumen hoch
verwirrtAugenzwinkerngeschockt
Mit ZungeGottunglücklich
Forum Kloppebösegroßes Grinsen
TanzentraurigProst
TeufelSpamWillkommen
LehrerLOL HammerZunge raus
Hilfe 
aktuellen Tag schließen
alle Tags schließen
fettgedruckter Textkursiver Textunterstrichener Text zentrierter Text Hyperlink einfügenE-Mail-Adresse einfügenBild einfügen Zitat einfügenListe erstellen CODE einfügenPHP CODE farbig hervorheben
Spamschutz:
Text aus Bild eingeben
Spamschutz

Die letzten 3 Beiträge
nattydread

du hast bei scanf das "&" bei jahr vergessen Augenzwinkern

abgesehn davon: versuche mal etwas an der effektivität deines programmes zu optimieren..da sind noch einige operationen drin,die man so nicht unbedingt benötigt Augenzwinkern
anonym

Debugge doch mal Schritt für Schritt durch, dann siehst du, wo der Fehler ist.
mCPBA C: Programm zu Schaltjahren stürzt ab

Hallo,

ich habe das Vergnügen, ein Programm in C schreiben zu dürfen, welches mir zu jeder beliebigen Jahreszahl angibt, ob es sich um ein Schaltjahr handelt. Leider verabschiedet sich mein Programm immer nach Eingabe der Jahreszahl:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
#include<stdio.h>

//Festlegen der Jahreszahl
int main(){
	int jahr=0;
	do{
		printf("Bitte positive Jahreszahl eingeben: ");
		scanf("%d", jahr);
	}while(jahr<=0);
	
//Eigentlicher Test
	if(jahr %4 == 0)
	{
		if(jahr %100 == 0)
		{
			if(jahr %400 == 0)
				printf("%d ist ein Schaltjahr.\n", jahr);
			else
				printf("%d ist kein Schaltjahr.\n", jahr);
		}
		else
			printf("%d ist ein Schaltjahr.\n", jahr);
	}
	else
		printf("%d ist kein Schaltjahr. \n", jahr);

	return 0;
}


Starten mit Debugger liefert folgendes:


"Schaltjahr.exe": "C:\Users\mCPBA\Documents\Visual Studio 2010\Projects\Schaltjahr\Debug\Schaltjahr.exe" geladen, Symbole wurden geladen.
"Schaltjahr.exe": "C:\Windows\SysWOW64\ntdll.dll" geladen, Cannot find or open the PDB file
"Schaltjahr.exe": "C:\Windows\SysWOW64\kernel32.dll" geladen, Cannot find or open the PDB file
"Schaltjahr.exe": "C:\Windows\SysWOW64\KernelBase.dll" geladen, Cannot find or open the PDB file
"Schaltjahr.exe": "C:\Windows\SysWOW64\msvcr100d.dll" geladen, Symbole wurden geladen.
Eine Ausnahme (erste Chance) bei 0x5f29effe (msvcr100d.dll) in Schaltjahr.exe: 0xC0000005: Zugriffsverletzung beim Schreiben an Position 0x00000000.
Unbehandelte Ausnahme bei 0x5f29effe (msvcr100d.dll) in Schaltjahr.exe: 0xC0000005: Zugriffsverletzung beim Schreiben an Position 0x00000000.

Vllt kann mir einer von Euch bei der Fehlersuche behilflich sein Wink

Schöne Grüße