Array mit for Schleife befüllen Hilfeeee
-
@DirkB sagte in Array mit for Schleife befüllen Hilfeeee:
@HIitsme sagte in Array mit for Schleife befüllen Hilfeeee:
Jz bekomme ich schon einen Wert und zwar Summe = 255 aber das ist einfach zu groß oder?Nein. Zu klein. Viel zu klein.
Falls du den kleinen Gauss kennst und das Prinzip verstanden hast, kannst du das auch selber schnell im Kopf ausrechnen.
-
for(int i=0, j=5; i<19 ; ++i , j += 5) { array1[i]=j; } for(int i = 0; i <= 19; i++) { array2[i] = array1[i]*2; //befüllen von array1 und array2 } ```bin auf das gekommen derzeitig glaube bin auf dem richtigem Weg.
-
@HIitsme sagte in Array mit for Schleife befüllen Hilfeeee:
bin auf das gekommen derzeitig glaube bin auf dem richtigem Weg.
Warum zwei Schleifen?
Warum geht die eine bis < 19, die andere bis <= 19 ?Das mit demj hochzählen ist ok, da du so nur Addition hast. Man kann aber auch das j auch aus i berechnen.
-
for(int i=0, j=5; i<19 ; i++ , j += 5) { array1[i]=j; array2[i] = j*2; } ```Du meinst das so oder Dirk dass ich beide in einen zusammenfassen kann.
-
@HIitsme sagte in Array mit for Schleife befüllen Hilfeeee:
Du meinst das so oder Dirk dass ich beide in einen zusammenfassen kann.
Ja klar.
Aber du zählst nur von 0 bis 18.Hättest du aber mit meiner Ausgabeschleife herausgefunden
Wofür ist eigentlich die Variable anzahl da?
-
#include <stdio.h> #include <stdlib.h> int main() { float array1[20]; //soll bei 5 beginnen und immer 5 dazuzählen float array2[20]; //array1 * 2 float summe = 0, summe1 = 0; float anzahl = 20; for(int i=0, j=5; i<19 ; i++ , j += 5) { array1[i]=j; array2[i] = j*2; } for(int i = 0; i < anzahl; i++) //Summe von befüllten array1 und array2 Werten { summe += array1[i]; summe1 += array2[i]; } printf("array1: Summe: %.2f Mittelwert: %.2f\n", summe, summe/anzahl); //Ausgabe printf("array2: Summe: %.2f Mittelwert: %.2f\n", summe1, summe1/anzahl); return 0; }
den habe ich für den Mittelwert genommen.
-
@HIitsme sagte in Array mit for Schleife befüllen Hilfeeee:
for(int i=0, j=5; i<19 ; ++i , j += 5) { array1[i]=j; } for(int i = 0; i <= 19; i++) { array2[i] = array1[i]*2; //befüllen von array1 und array2 } ```bin auf das gekommen derzeitig glaube bin auf dem richtigem Weg.
Wieso adressierst du dies an mich, wenn du gerade genau nicht das gemacht hast, was ich dir vorgeschlagen habe? Hier geht nämlich genau das schief, wovor ich dich gewarnt habe.
Das gilt auch für die danach gezeigten Codes. Das ist immer noch Herumpfuschen, um deinen ersten, kaputten Versuch noch irgendwie zu reparieren. Dabei wärst du wahrscheinlich schon lange fertig, wenn du es einfach noch einmal sauber von vorne gemacht hättest.
-
@HIitsme sagte in Array mit for Schleife befüllen Hilfeeee:
den habe ich für den Mittelwert genommen.
Na dann.
Aber du möchtest doch beim aufsummieren genau dieselben Felder haben, wie beim füllen.
Warum nimmst du dann andere Werte?Für die eine Summe muss übrigens 1050 raus kommen.
-
@HIitsme sagte in Array mit for Schleife befüllen Hilfeeee:
@Wade1234 Achso mein Wert 99 war zu groß da mein array1 nur auf 20 Stellen zugreifen kann und ich aber schon längst über 20 bin nämlich 99.
also mal was grundsätzliches: wenn du in einer schleife ein array komplett (in diesem fall mit den werten vom index) befüllten willst, sieht das so aus:
#define ARRAYGROESSE 100 //großbuchstaben zur verdeutlichung, dass es eine konstante ist! //vorteil von konstanten: du musst sie nur an einer stelle (nämlich ganz oben) ändern //und vermeidest so schwer zu findende fehler. int i; int array[ARRAYGROESSE]; for(i = 0; i < ARRAYGROESSE; i++) //durchläuft das array in diesem fall von 0 - 99 //alles danach führt wieder zu schwer auffindbaren fehlern { array[i] = i; //füllt das array mit den werten 0 ... 99 bzw. 0 ... (ARRAYGROESSE - 1) }
-
@Wade1234 Danke das war wirklich sehr hilfreich habe nie arrays von dieser Seite mit Konstanten betrachtet.