Kann jemand die Fehler in diesem Programm korrigieren

Code:
struct S
{
int zahl;
int*next;
}
int main (void)
struct S zahlen [49];
for (i=0; i<49; i++){
zahlen[i].zahl=i;
if (i==48)
zahlen [i].next=& zahlen [0];
else
zahlen[i].next=& zahlen [i+1]
} //for
bul exit= false;
struct S*zahl;
zahl=&zahlen [0];
struct S*prev=& zahlen [48];
do {
prev=zahl;
zahl=zahl next;
show (zahl);
key=read keyboard();
if (key==F12){
save (zahl);
prev next=zahl next
zahl=pev;
}
if (Esc) Exit=true;
} while (! exit);