Augabe von der Funktion

mathletic

Newbie
Registriert
Nov. 2014
Beiträge
2
Hallo,

ich will eine Funktion schreiben für die Zerstörung des Planetensystems "solid".Mit der Zerstörung des Planetensystems, werden auch die Planete zerstört(also müssen sie gelöscht werden), von dene der Abstand von der Sonne mindestens "gap" ist. Die Planeten, für dene der Abstand größer ist werden zu vagabundierende Planeten(ffplan_t) umwandelt. Diese neue Menge wird zu der Matrix der vagabundierenden Planeten der Galaxie, zu der das Planetensystem gehört, hinzugefügt. Die Kennzeichnung "fp" der neuen Menge ist die Kennzeichnung vom Planetensystem, das gelöscht worden ist.

Die Funktion destruction() soll folgendes ausgeben:

Planetensysteme: < solid >_1 , < solid >_2 , ... , < solid >_n

Vagabundierende PlaneteM: < fp >_1 , < fp >_2 , ... , < fp >_n

Vagabundierende Planete: < VP >_1 , < VP >_2 , ... , < VP >_n



< solid >_i ist die Kennzeichnung des i Planetensystems der Galaxie in der das gelöschte Planetensystem gehörte.

< fp >_i ist die Kennzeichnung der i Menge der vagabundierende Planeten in der Matrix der vagabundierende Planeten der Galaxie in der das gelöschte Planetensystem gehörte.

< VP >_i ist die Kennzeichnung des i vagabundierende Planeten in der Liste der vagabundierende Planeten der neuen Menge der vagabundierende Planeten der Galaxie in der das gelöschte Planetensystem gehörte.


Ich habe die folgende Funktion geschrieben:

Code:
int ffplanpos=0;

int destruction(int solid, int gap){
	int i, j;
	int sum=0;
	plansys_t *p=StarS[0].plasy;;
	for(i=0; i<Sfreep; i++){
		p=StarS[i].plasy;
		while (p != NULL && p->solid != solid){
			p=p->next;
			j=i;
		}
	}
	if(p == NULL){
		printf("The planetary system with identifier %d couldn't be found\n", solid);
		exit;
	}
	asteroid_t *f=p->asteroids;
	while(sum<gap){
		sum=sum+f->gap;
		f=f->next;
		DELETE(f->prev, f->prev->as);
	}
	
	StarS[j].ffplan[ffplanpos].fp=solid;
	ffplanpos++;
	
	asteroid_t *planf = calloc(1, sizeof(asteroid_t));
	planf->as=f->as;
	planf->gap=0;
	planf->next=NULL;
	planf->prev=NULL;
	asteroid_t *K=StarS[j].ffplan[ffplanpos].ff;
	f=f->next;
	while(f != NULL){
		if (K == NULL) {
        	K = planf;
        } else {
        	asteroid_t *last = K;
        	while (last->next != NULL) {
        		last = last->next;
        	}
        	last->next = planf;
       	}     
		f=f->next;
	}      
	
	
	return 0;
	
}


Was kann ich schreiben sodass die < solid >_i , < fp >_i , < VP >_i für alle i, 1 <= i <= n ausgegeben werden ?

P.S. Der ganze Programm ist der folgende: http://pastebin.com/EpUykrXB
 
Was heißt "Ausgabe"? Möchtest du eine Ausgabe am Bildschirm oder was genau? In dem Fall genügt ja ein printf in ein paar Schleifen vollkommen.

PS: Deine Grammatik lässt sehr zu wünschen übrig. "Planete" ist keine Deklinationsform von Planet. Und auch sonst könntest du dir nochmal angucken, wie das mit dem Akkusativ läuft, meistens fehlt bei dir ein n am Wortende.
 
Eher nicht, kommt aber drauf an, was genau du machen willst. Da du die erste Datei mit den typedefs wieder gelöscht hast, ist da für andere sowieso nichts mehr nachzuvollziehen.

Erlaube mir die Frage, wer hat denn den Code geschrieben?
Es wirkt so, als hättest du eher den Code vorgesetzt bekommen und dann die Aufgabe gekriegt, noch eine Ausgabe mit rein zu schreiben.
Ohne zu wissen, was du willst, kann dir hier jedenfalls niemand helfen.
 
Zurück
Oben