Dynamische Speicherallokation: Aufgabe
-
redrew99 schrieb:
Unter C++ wäre das ein vector.
Ich würde eher auf
std::tr1::arrayverweisen.
-
Ich glaube dass das mit dem Array schon so gemeint ist, da in dem dazugehörigen Tutorial http://www.highscore.de/cpp/einfuehrung/index.html
es so verwendet wird.
Für mich klingt die Aufgabenstellung auch eher nach: ungerade Zahlen: 0
gerade Zahlen:1 nur wie soll ich das ausgeben ? einfach als Zahlenkette ( 01010101..) ?Grüße
silent1297
-
Hat niemand eine Idee für die Ausgabe ? Oder muss ich am Ende noch mehr umstellen ? Mein Code:
#include <string>
#include <iostream>
using namespace std;int main()
{
int i;
short Array[i];cout << "Wie viele Array-Elemente moechten Sie speichern? " <<flush;
cin >> i;short* arrays = new short[i];
for (int b = 0; b < i; ++b)
{
if (b % 2)
{ b = 0;}
else { b = 1;
}
}delete[] Array;
system ("Pause");
}
-
* das Array am Anfang der main()-Funktion ist überflüssig
* in der Schleife solltest du besser nicht die Zählvariable kaputtmachen, sondern als Index im Array verwenden
* die Ausgabe fehlt noch
* delete greift auf die falsche Variable zuPS: sfds
-
Aha, du willst die Lösung:
#include <iostream> int main() { std::cout << "Elementanzahl = "; std::size_t Size; std::cin >> Size; short* Array = new short[Size]; for(std::size_t i = 0; i < Size; i++) std::cout << (Array[i] = i % 2) << ", "; delete[] Array; }
-
#include <string>
#include <iostream>
using namespace std;int main()
{
int i;
short Array[i];cout << "Wie viele Array-Elemente moechten Sie speichern? " <<flush;
cin >> i;short* arrays = new short[i];
for (int b = 0; b < i; ++b)
{
if (b % 2)
{ b = 0;
}
else
{ b = 1;
}
cout << b <<endl;
}delete[] arrays;
system ("Pause");
}
Habe es jetzt erstmal so umgeschrieben (Überflüssige noch dringelassen), aber die Ausgabe klappt noch nicht! ?
-
OK, einer von vier Kritikpunkten ist umgesetzt, der Rest ist immer noch genauso falsch wie vorher
for (int b = 0; b < i; ++b) { if (b % 2) { arrays[b] = 0; // hier wird der Inhalt des Arrays gefüllt } else { arrays[b] = 1; // bzw. hier } }Für die Ausgabe kannst du in einer zweiten Schleife über das Array laufen.
-
Sry bin noch völliger Anfänger und weiß nicht was du mit der zweiten Schleife die über das Array laufen soll meinst :-/.
-
Du weißt aber schon, was eine Schleife ist? Dann kannst du eine Schleife verwenden, um nacheinander alle Elemente des Arrays auszugeben (funktioniert so ähnlich wie das Füllen des Arrays).
-
Ich habs jetzt erstmal so probiert:
for (int i = 0; b < i; ++i)
{
cout << arrays[b] << ", " <<endl;
}aber wo hat sich der Fehler/Denkfehler eingeschlichen ?
-
Der Denkfehler besteht darin, daß du besser darauf achten solltest, welche Variable welche Aufgabe bekommen soll. Oben hast du i für die Array-Größe und b als Zähler/Index verwendet, jetzt machst du es genau umgekehrt.
(vernünftige Variablennamen könnten auch helfen - C++ erlaubt auch Bezeichner, die länger als ein Zeichen sind ;))
-
Ohman
Das passiert wenn man zu schnell durchheizt
aber jetzt geht alles
danke für alle TippsGrüße
silent12