Den benötigten C Code schreiben

Aufrufe: 1296     Aktiv: 22.01.2020 um 20:16

1

Hat jemand einen Lösungsweg um die Aufgabe richtig zu lösen, vielen Dank!enter image description here

Diese Frage melden
gefragt

Student, Punkte: 45

 
Kommentar schreiben
1 Antwort
0

Hallo, hier mal Code den zumindest der Compiler schluckt. Ausprobiert hab ich's nicht.

int statistics(float numbers, int length, float mean, float *std) { float mean_value = compute_mean(numbers, length); float std_dev_value = compute_std_dev(numbers, length);

*mean = mean_value;
*std = std_dev_value;
return length != 0;

}

void test(void) {

float numbers[] ={1.0, 2.0, 3.0};
float mean;
float std_dev;

if (statistics(numbers, sizeof(numbers) / sizeof(numbers[0]), &mean, &std_dev) == TRUE)
{  /* code */  }

}

Da ich normalerweise Steuerungen programmiere verwende ich kein float. Daher bin ich mir nicht ganz sicher ob das Konstrukt sizeof(numbers) / sizeof(numbers[0]) hier auch funktioniert. Da es aber bei allem, auch struct und union geht sollte es bei float auch gehen.

LG jobe

PS Die Formatierung dieses Editors lässt zu wünschen übrig oder ich habe sie noch nicht kapiert. Der C Code wird gräuslich dargestellt.

Diese Antwort melden
geantwortet

Sonstiger Berufsstatus, Punkte: 505

 

vielen Dank für deine Antwort, habe es mal so übernommen, soweit ich weiß darf man sizeof(string) / sizeof(string[0] nur für strings verwenden, kann mich aber auch irren bin nur Anfänger ^^ danke für deine Antwort

  ─   unknown 22.01.2020 um 13:01

Hallo, sizeof() liefert immer den Platzbedarf in Bytes. sizeof(long); liefert 4.
long xxx[10]; sizeof(xxx); liefert 40, sizeof(xxx[0]) liefert 4.
Somit liefert (sizeof(xxx) / sizeof(xxx[0]) die 10. Muss immer gehen.
Natürlich könnte man auch sizeof(xxx[5]) nehmen. Get auch, macht aber keiner. LG jobe

  ─   jobe 22.01.2020 um 20:16

Kommentar schreiben