Strona 1 z 1
[c] wyznazenie wielkanocy Metoda Meeusa
: 8 sty 2009, o 11:55
autor: hellsing
Kod: Zaznacz cały
#include <stdio.h>
void wielkanoc( int rok, int dn, int ms)
{ /*kozystajac z Metoda Meeusa wyznaczam dzien i miesiac w jakim wypadnie wielkanoc*/
/*w zadanym roku.*/
int a,b,c,d,e,f,g,h,i,k,l,m,p;
int dzien,miesiac;
a=rok%19;
b=rok/100;
c=rok%100;
d=b/4;
e=b%4;
f=(b+8)/25;
g=(b-f+1)/3;
h=(19*a+b-d-g+15)%30;
i=c/4;
k=c%4;
l=(32+2*e+2*i-h-k)%7;
m=(a+11*h+22*l)/451;
p=(h+l-7*m+114)%31;
dzien=p+1;
miesiac=(h+l-7*m+114)/p;
dn=dzien;
ms=miesiac;
}
int main( void){
int rok;
int swieta[23];
printf("podaj rok
");
scanf("%d",&rok);
wielkanoc(rok, swieta[0], swieta[1]);
printf("%d.%d", swieta[0], swieta[1]);
getchar();
system("pause");
return 0;
}
Zwraca mi jakies licczby z kosmosu, chyba przekracza zakres inta. Może mi ktoś wskazac błędy??
[c] wyznazenie wielkanocy Metoda Meeusa
: 8 sty 2009, o 12:06
autor: wafello
zdaje mi się ze gdy chcesz modyfikować zmienne które przekazujesz jako argumenty powinieneś użyć referencji...
EDIT:
coś takiego :
[c] wyznazenie wielkanocy Metoda Meeusa
: 8 sty 2009, o 12:54
autor: hellsing
Wtedy program nie chce sie zkompilowac. Kompilator wskazuje na bład w funkcji wielkanoc: BezNazwy2.c syntax error before '&' token.
[c] wyznazenie wielkanocy Metoda Meeusa
: 8 sty 2009, o 21:43
autor: wafello
a jakiego kompilatora używasz?
[c] wyznazenie wielkanocy Metoda Meeusa
: 8 sty 2009, o 22:03
autor: smiechowiec
Wkradła się jedna literówka do zapisu miesiac = (h + l - (7 * m) + 114) /
31;
Po poprawce działa prawidłowo
Kod: Zaznacz cały
#include <stdio.h>
void wielkanoc(int rok, int swieta[]) {
/* kozystajac z Metoda Meeusa wyznaczam dzien i miesiac
w jakim wypadnie wielkanoc w zadanym roku. */
int a, b, c, d, e, f, g, h, i, k, l, m, p;
int dzien, miesiac;
a = rok % 19;
b = rok / 100;
c = rok % 100;
d = b / 4;
e = b % 4;
f = (b + 8) / 25;
g = (b - f + 1) / 3;
h = ((19 * a) + b - d - g + 15) % 30;
i = c / 4;
k = c % 4;
l = (32 + (2 * e) + (2 * i) - h - k) % 7;
m = (a + (11 * h) + (22 * l)) / 451;
p = (h + l - (7 * m) + 114) % 31;
dzien = p + 1;
miesiac = (h + l - (7 * m) + 114) / 31;
swieta[0] = dzien;
swieta[1] = miesiac;
}
int main( void) {
int rok;
int swieta[2];
printf("podaj rok ");
scanf(" %d", &rok);
wielkanoc(rok, swieta);
printf("Wielkanoc w %d roku wypada %d.%d (według kalendarza gregoriańskiego).", rok, swieta[0], swieta[1]);
return 0;
}