Hi,
ich habe hier folgende Aufgabenstellung:
"Definieren Sie ein Struktur, die für jede Person die folgenden Informationen aufnimmt.
1. Geschlecht (Typ char, m oder w)
2. Körpergröße
3. Gewicht
Schreiben Sie ein C-Programm, das n solche Datensätze einliest und in einem dynamisch angefordertem Feld speichert. Anschließen soll eine Statistik - nach Männern und Fraun getrennt - gemäß unten angegebener Form ausgegeben werden. Die Gewichtsklassen sind durch flogende Formeln bestimmt (g ... Gewicht, h ... Körpergröße).
Übergewicht: g > 1.05h - 105
Untergwicht: g < 0.8h - 80
Normalgewicht: sonst
Weiter sind das Durchschnittsgewicht und die Durchschnittsgröße nach Frauen und Männer getrennt zu bestimmen und auszugeben."
Das ist zur Zeit alles was ich zusammengebracht habe.
Die Funktioniert funktioniert nicht wirklich, es wär auch nett wenn mir einer sagt ob das andere auch 100%ig funktioniert, denn so sicher bin ich mir dabei auch nicht
Bitte um rasche Hilfe.
ich habe hier folgende Aufgabenstellung:
"Definieren Sie ein Struktur, die für jede Person die folgenden Informationen aufnimmt.
1. Geschlecht (Typ char, m oder w)
2. Körpergröße
3. Gewicht
Schreiben Sie ein C-Programm, das n solche Datensätze einliest und in einem dynamisch angefordertem Feld speichert. Anschließen soll eine Statistik - nach Männern und Fraun getrennt - gemäß unten angegebener Form ausgegeben werden. Die Gewichtsklassen sind durch flogende Formeln bestimmt (g ... Gewicht, h ... Körpergröße).
Übergewicht: g > 1.05h - 105
Untergwicht: g < 0.8h - 80
Normalgewicht: sonst
Weiter sind das Durchschnittsgewicht und die Durchschnittsgröße nach Frauen und Männer getrennt zu bestimmen und auszugeben."
Code:
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
typedef struct {
char s;
int h;
int g;
} Person;
int w_hei(int x, Person *p);
int main(int argc, char *argv[]) {
Person *ptr = NULL;
int n, i = 0, j =0;
int erg = 0;
puts("Wieviele Personen wollen Sie eingeben? ");
scanf("%d", &n);
ptr = (Person *) malloc(n * (sizeof(Person)));
if(ptr == NULL) {
puts("Kein Speicherplatz mehr vorhanden.");
}
else {
while(i<n) {
fflush(stdin);
puts("Geschlecht: ");
scanf("%c", &ptr[i].s);
puts("Groesse: ");
scanf("%d", &ptr[i].h);
puts("Gewicht: ");
scanf("%d", &ptr[i].g);
i++;
}
}
erg = w_hei(n, ptr);
printf("%d", erg);
free(ptr);
return EXIT_SUCCESS;
}
int w_hei(int x, Person *p) {
int i = 0, j = 0, w_count = 0, w_gro = 0;
int wh = 0;
while(i<x) {
if(p[i].s == 'w') {
w_count++;
wh = p[i].h++;
}
i++;
}
return wh/w_count;
}
Das ist zur Zeit alles was ich zusammengebracht habe.
Die Funktioniert funktioniert nicht wirklich, es wär auch nett wenn mir einer sagt ob das andere auch 100%ig funktioniert, denn so sicher bin ich mir dabei auch nicht
Bitte um rasche Hilfe.