C: Programm zu Schaltjahren stürzt ab

Neue Frage »

Auf diesen Beitrag antworten »
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
 
Auf diesen Beitrag antworten »
anonym

Debugge doch mal Schritt für Schritt durch, dann siehst du, wo der Fehler ist.
Auf diesen Beitrag antworten »
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
 
Neue Frage »
Antworten »


Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »