Gaußsche Osterformel in C programmieren

Hallo,
ich muss die Gaußsche Osterformel in C programmieren. Ich darf aber nur ein printf verwende. Ich weiß aber nicht wie ich das machen soll, denn Ostern kann ja auf März oder April fallen. Kann mir jemand weiterhelfen? Hier mein Ansatz (mit zwei printf).

#include
int ostern(int x)
{
int a = x%19;
int b = x%4;
int c = x%7;
int k = x/100;
int p = (8*k+13)/25;
int q = k/4;
int M = (15+k-p-q)%30;
int N = (4+k-q)%7;
int d = (19*a+M)%30;
int e = (2*b+4*c+6*d+N)%7;

if (d+e==35)
{
return 50;
} else if ((d==28) && (e==6) && ((11*M+11)%30

Ich weiß es leider nicht.

Du kannst den auszugebenden Monatsnamen zunächst in einer Zeichenketten-Variablen zwischenspeichern. Dieser lässt sich im Format-String mit dem Platzhalter %s einfügen. Ebenso solltest du den Oster-Monatstag auch an eine Variable übergeben, um von dieser dann 31 zu subtrahieren, falls das Datum im April liegt.

Allgemein sollten Variablennamen möglichst aussagekräftig gewählt werden, damit schon das Lesen des Quelltextes selbsterklärend wird – also besser tag=ostern(jahr) als y=ostern(x). Wer nach Jahren noch mal alte Quelltexte liest, weiß das zu schätzen…

Also ein knapper Hinweis auf sinnvolle Änderungen (unvollständig!):

int jahr, tag;
char *monat = „März“;
// …
tag = ostern(jahr);
if(tag > 31)
{
tag -= 31; // Kurzform von: tag = tag-31;
monat = „April“;
}
printf(„Im Jahr %d war Ostersonntag am %d. %s“,jahr, tag, monat);

Hallo,
dann leg doch für den Monat und den Tag auch jeweils eine Variable an die du innerhalb des if else füllst.
So hast du am Ende nur eine einzige printf Anweisung außerhalb der if else Anweisung (über return(0)).

  1. Jahr für das Ostern berechnet werden soll mit scanf einlesen.
  2. Formeln anwenden (googeln oder eigene Quellen)
  3. Ergebnis mit printf ausgeben.

1.b) eingegebenes Datum validieren

Hallo, alle Ergebnis in Variablen speichern,
dann mit einer printf ausgeben
Gruß

Du kannst mit %d Zeichenketten an printf übergeben.


const char* monat;
if (31