Witam mam prace domową z programowania w języku c i program powinien zwracać true albo false a zwraca np true4. czy ktoś może mi powiedzieć dlaczego tak się dzieje i jak to naprawić.
#include <stdio.h>
#include <math.h>
int leap(int rok){
if(rok%4==0){
if(rok%100==0 && rok%400!=0){
printf("true");
}else {
printf("false");
}
}else {
printf("false");
}
}
int main(){
int r;
scanf("%i" , &r);
//printf("%i" , leap(rok));
return printf("%i" , leap(r));
}
treść zadania: Według kalendarza gregoriańskiego przestępne są lata podzielne przez 4 z wyjątkiem lat podzielnych przez 100 ale niepodzielnych przez 400. Napisz funkcję leap, która przyjmuje rok i zwraca prawdę jeśli jest on przestępny albo fałsz w przeciwnym razie. Korzystając z tej funkcji napisz program leap, który czytuje ze standardowego wejścia rok i wypisuje na standardowe wyjście true jeśli jest on przestępny albo false w przeciwnym wypadku.