Cherrycoke
Mitglied
Hallo Community,
ich bereite mich zur Zeit auf eine Prüfung vor und habe noch so meine Probleme mit folgender Aufgabe:
Geben Sie C-Anweisungen an, mit denen
Dazu habe ich bisher folgendes Programm geschrieben:
Meine Frage nun an euch. Lässt sich Aufgabenpunkt 1 und 2 eleganter lösen? Ich bin Anfänger, und kenne bisher nur diese funktionierende Vorgehensweise.
Und die Eigentliche Frage: Ich habe leider keine Ahnung, wie ich den 3. Aufgabenteil angehe. Ich habe nun mal für die Variable pk Speicherplatz reserviert, aber wie Schreibe ich nun in den Speicherplatz die geforderten Werte?
Wie würde ich zum Beispiel den Mittelpunkt von pk eingeben? Ebenfalls einfach pk.mitte.x = 0? Wie würde es denn aussehen, wenn ich Speicherplatz für 2 Variablen angefordert hätte, und die zweite Variable beschreiben wollen würde (pk = calloc(2, sizeof(Kugel))
.
Danke für eure Hilfe!
ich bereite mich zur Zeit auf eine Prüfung vor und habe noch so meine Probleme mit folgender Aufgabe:
Geben Sie C-Anweisungen an, mit denen
- die Variable p mit den Koordinaten (x = 0, y = 0, z = 0) belegt wird,
- Die Daten der Kugel mit dem Mittelpunkt (x = 1.1, y = 2.2, z = 3.3), Radius 1 und bestehend aus dem Material mit dem Identigikationsnummer 42 in die Variable k eingetragen werden, und
- Platz für eine neue, über den Zeiger pk zugängliche Variable von Typ Kugel angelegt wird. Diese Variable soll mit den Daten einer Kugel mit Radius 1 belegt werden, deren Mittelpunkt im Ursprung liegt und die aus dem Material 23 besteht.
Dazu habe ich bisher folgendes Programm geschrieben:
Code:
#include <stdlib.h>
#include <assert.h>
/* Koordinaten eines Punktes im Raum */
typedef struct {
double x, y, z;
} Punkt;
/* Daten einer Kugel */
typedef struct {
Punkt mitte;
double radius;
int material_id;
} Kugel;
int main (void){
Punkt p;
Kugel k;
Kugel *pk;
/* 1. Aufgabenpunkt */
p.x = 0;
p.y = 0;
p.z = 0;
/* 2. Aufgabenpunkt */
k.mitte.x = 1.1;
k.mitte.y = 2.2;
k.mitte.z = 3.3;
k.radius = 1;
k. material_id = 42;
/* Beginn: 3. Aufgabenpunkt */
pk = calloc(1, sizeof(Kugel));
/* Testausgabe */
printf("Variable p:\n");
printf("p.x = %f\np.y = %f\np.z = %f\n", p.x, p.y, p.z);
printf("\n\n");
printf("Kugel:\n");
printf("Mittelpunkt:\n");
printf("x = %f\ny = %f\nz = %f\n", k.mitte.x, k.mitte.y, k.mitte.z);
printf("Radius\n");
printf("r = %f\n", k.radius);
printf("ID\n");
printf("ID = %d\n", k.material_id);
free(pk);
return 0;
}
Meine Frage nun an euch. Lässt sich Aufgabenpunkt 1 und 2 eleganter lösen? Ich bin Anfänger, und kenne bisher nur diese funktionierende Vorgehensweise.
Und die Eigentliche Frage: Ich habe leider keine Ahnung, wie ich den 3. Aufgabenteil angehe. Ich habe nun mal für die Variable pk Speicherplatz reserviert, aber wie Schreibe ich nun in den Speicherplatz die geforderten Werte?
Wie würde ich zum Beispiel den Mittelpunkt von pk eingeben? Ebenfalls einfach pk.mitte.x = 0? Wie würde es denn aussehen, wenn ich Speicherplatz für 2 Variablen angefordert hätte, und die zweite Variable beschreiben wollen würde (pk = calloc(2, sizeof(Kugel))

Danke für eure Hilfe!