Witam, z góry przepraszam za trywialność problemu, ale materiały jakie podpowiada nam nasz wykładowca nijak są w stanie mi pomóc. Pisałem kiedyś w Javie i nie do końca jeszcze wyczuwam różnice między Javą, a C. Program kompiluje się z masą ostrzeżeń, a jak go uruchamiam to wyskakuje pusty terminal, co muszę zmienić?
"Napisz program, który czyta liczbę naturalną r (1600 < r < 10 000)
i drukuje wszystkie piątki trzynastego w roku r.
(W Polsce w tym czasie obowiązywał i zakładamy, że będzie obowiązywał
kalendarz gregoriański)"
pierwszyStycznia to dzień jaki był 1.01.1600
#include <stdio.h>
#include <stdlib.h>
int main()
{
int jakiDzienPierwszego(int pierwszyStycznia, int rok){
int jakiDzien;
jakiDzien = (pierwszyStycznia + 366*ilePrzestepnych(rok) + 365*(rok - ilePrzestepnych(rok)))%7;
return jakiDzien;
}
int ilePrzestepnych(int rok){
int i;
int ilePrzestepnych = 0;
for(i = 0; i < rok - 1600; i++){
if(czyPrzestepny(i) == 1)
ilePrzestepnych++;
}
return ilePrzestepnych;
}
int czyPrzestepny(int rok){
if(rok == 0 || (rok%4 == 0 && rok%400 == 0) || (rok%4 == 0 && rok%100 != 0))
return 1;
return 0;
}
void wypiszPiatki(int pierwszyStycznia, int rok){
puts("W danym roku piatki trzynastego beda w tych miesiacach:");
switch(jakiDzienPierwszego(pierwszyStycznia, rok)){
case 0:
if(czyPrzestepny(rok) == 1)
puts("Wrzesien oraz grudzien.");
else
puts("Maj.");
break;
case 1:
if(czyPrzestepny(rok) == 1)
puts("Czerwiec.");
else
puts("Wrzesien oraz grudzien.");
break;
case 2:
if(czyPrzestepny(rok) == 1)
puts("Marzec oraz listopad.");
else
puts("Czerwiec.");
break;
case 3:
if(czyPrzestepny(rok) == 1)
puts("Luty oraz sierpien.");
else
puts("Luty, marzec oraz listopad.");
break;
case 4:
if(czyPrzestepny(rok) == 1)
puts("Maj.");
else
puts("Sierpien.");
break;
case 5:
if(czyPrzestepny(rok) == 1)
puts("Pazdziernik.");
else
puts("Maj.");
break;
case 6:
if(czyPrzestepny(rok) == 1)
puts("Styczen, kwiecien oraz lipiec");
else
puts("Styczen oraz pazdziernik");
break;
}
}
int main (void){
int pierwszyStycznia = 1;
int rok;
puts("Podaj rok, a ja wypisze jego piatki 13-stego");
scanf("%d", &rok);
wypiszPiatki(pierwszyStycznia, rok);
return 0;
}
}