![]() |
Mein Array will sich nicht befüllen lassen
Hallo erstmal.
Ich habe eine Aufgabe zu erledigen, in der es heisst ich solle Primzahlen bis zu einer gewissen obergrenze berechnen und die Anzahl der errechneten Primzahlen ausgeben. Alles kein problem und läuft auch. Allerdings ist die Aufgabenstellung, dass ich alle errechneten Primzahlen in ein entsprechendes array einspeicher und sie darüber ausgebe, wie auch die Menge der errechneten Zahlen über die Größe des arrays. Funktioniert:
Code:
soviel zum Primzahlenrechner.
//oS steht für obere Schranke und wird weiter oben im code von der Tastatur eingelesen
int count = 0; int i; for(i=2; i<=oS; i++){ int teiler = 2; while(i % teiler != 0){ teiler++; } if(teiler == i){ count++; printf("%d\n", i); } } printf("Es wurden insgesamt %d Primzahlen berechnet", count); return 0; Hier ist mein verzweifelter Versuch das alles über ein array auszugeben:
Code:
Die Idee war, die jeweils errechnete Zahl in der stelle "count" im array einzuspeichern und nachdem jegliche Arbeit in einem loop mit diesem array vollbracht ist, count um 1 zu erhöhen. Das Programm gibt zwar alle Primzahlen wie gewünscht aus, für die Größe des Arrays jedoch IMMER als 1... und ich weiß nicht wieso.
//oS steht für obere Schranke und wird weiter oben im code von der Tastatur eingelesen
int Primzahlen[oS]; int count = 0; int i; for(i=2; i<=oS; i++){ int teiler = 2; while(i % teiler != 0){ teiler++; } if(teiler == i){ Primzahlen[count] = i; printf("%d\n", Primzahlen[count]); count++; } } printf("Es wurden insgesamt %d Primzahlen berechnet", sizeof(Primzahlen[count]/sizeof(int)); return 0; Würde mich über viele hilfreiche tipps freuen :) |
AW: Mein Array will sich nicht befüllen lassen
Wie ist es denn so:
(sizeof(Primzahlen)/sizeof(*Primzahlen)) |
AW: Mein Array will sich nicht befüllen lassen
Zitat:
|
AW: Mein Array will sich nicht befüllen lassen
Du machst es dir unnötig schwer:
Code:
Und ich lese die Aufgabenstellung NICHt so dass die Anzahl der generierten Zahlen am Array berechnet werden sollen.
printf("Es wurden insgesamt %d Primzahlen berechnet", count);
Was wahrscheinlich gemeint ist, ist dass du erst die Primzahlen generierst und in einem Array speicherst. Im 2. Schritt durchläufst du das Array bis count und gibst die Zahlen aus. So lese ich das zumindest. |
AW: Mein Array will sich nicht befüllen lassen
Zitat:
edit: meinst du mit einer extra for-Schleife zur Ausgabe des arrays bis count? so:
Code:
int j;
for(j=0; j<count; j++){ printf("%d\n", Primzahlen[j]); } |
AW: Mein Array will sich nicht befüllen lassen
Zitat:
Ich bin mir ziemlich sicher, dass man nicht die Anzahl der wirklichen Einträge eines Arrays berechnen kann. Das Mitzählen mit der count-Variable ist das einzig wirklich sinnvolle. |
AW: Mein Array will sich nicht befüllen lassen
Zitat:
|
AW: Mein Array will sich nicht befüllen lassen
Kannst du vielleicht mal die original Aufgabenstellung hier posten?
PS: Du hast dich ja scheinbar hier für dieses Problem angemeldet. Wie kamst du darauf dich in einem Delphi Forum anzumelden um eine C-Frage zu stellen? :mrgreen: |
AW: Mein Array will sich nicht befüllen lassen
Zitat:
Aufgabe 2.3: Berechnung verschiedener Primzahlen Abgabe am 13.12.2017 um 14 Uhr Erstellen Sie ein Programm, dass alle Primzahlen bis zur einer vorgegebenen Schranke berechnet, speichert und ausgibt. Gehen Sie dafür wie folgt vor: •Einlesen einer Zahl die als obere Schranke dienen soll. •Berechnung aller Primzahlen die kleiner gleich der oberen Schranke sind. •Abspeichern der gefundenen Primzahlen in dem int-Array primzahlen[...] Sind alle Primzahlen abgespeichert: ◦Ausgabe aller Primzahlen und deren Anzahl. ◦Ausgabe der benötigten Zeit in Millisekunden zur Berechnung aller Primzahlen. Die Zeit in Millisekunden habe ich bereits im code integriert, aber erstmal für dieses problem nicht mit reinkopiert. Mich stört wirklich nur dass ich das ganze mit nem array ausgeben muss. |
AW: Mein Array will sich nicht befüllen lassen
Zitat:
Zitat:
Edit: Nvm, geht doch. Nur MSVC kann es scheinbar bisher nicht. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:21 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz