![]() |
[C++] Problem mit Schleifen und Arrays
Hi,
also ich musste anfangen in C++ zu programmieren und stoße des öfteren auf Probleme. Meistens finden sich die Fehler in der Schreibweise. Hier versteh ich nicht, warum es nicht so funktioniert, wie es soll: Erstmal der Quellcode:
Code:
Meine Aufgabe ist Zahlen miteinander zu addieren. Die erste Bedingung war, dass sich die Paare nicht wiederholen (also nicht 5+9 und 9+5, außer sie haben das gleiche Ergebnis). Die neue Bedingung ist nun, dass auch keine Ergebnisse mehr doppelt angezeigt werden dürfen.
int zahlen[]={0};
int ergebnisse[]={0}; [...] int k = 0; //Zählvariable für die Ergebnisse for(int i=0;i<n;i++) { for(int j=i;j<n;j++) { e=zahlen[i]+zahlen[j]; cout << zahlen[i] << " + " << zahlen[j] << " = " << e << "\n\n"; ergebnisse[k]=e; k++; } cout << "-----\n\n\n"; } for(int i=0;i<10+1;i++) { cout << i << ": " << ergebnisse[i] << "\n"; } Ich glaube es geht auch über die Schleifen, weil sich ein bestimmtes Muster ergibt, aber ich habe mir gedacht, dass ich die bereits errechneten Ergebnisse in einem Array speichere und dann mit den neuen Vergleiche und somit entscheide, ob das neue dargestellt werden darf oder nicht. Aber sobald ich versuche die Ergebnisse in dem gleichnamigen Array zu speichern ändern sich die Ergebnisse selbst. Das verstehe ich nicht und sehe auch nicht wo mein Fehler liegt. Liegt es an der neuen Zählvariablen k? Ich bin dankbar für jede Hilfe :) LG Alex |
Re: [C++] Problem mit Schleifen und Arrays
Es funktioniert nicht, weil die 2 Arrays beide nur ein Feld haben, also nur ergebnisse[0] und zahlen[0], du aber auf noch mehr zugreifst.
|
Re: [C++] Problem mit Schleifen und Arrays
Ich nehme mal an das der Array zahlen in ... gefüllt wurde.
|
Re: [C++] Problem mit Schleifen und Arrays
Zitat:
Code:
Aber ich habe jetzt mal das Array mit den Ergebnisse als ergebnisse[10] deklariert und es funktioniert. Ich muss nur wissen, wieviele Plätze ich maximal brauche.
cout << "Anfangswert: \n";
cin >> start; cout << "Schritte: \n"; cin >> step; cout << "Entwert: \n"; cin >> limit; cout << "\n\n"; for(int i=start,j=0;i<=limit;i=i+step,j++) { zahlen[j]=i; n=j; } n=n+1; |
Re: [C++] Problem mit Schleifen und Arrays
Zitat:
|
Re: [C++] Problem mit Schleifen und Arrays
Zitat:
Ich hab gerade keine gute Idee. Oder ich habe mir überlegt, alle Werte in einem mehrdimensionalen Array zu speichern. Und am Ende nur die auszugeben, die nicht doppelt vorkommen. |
Re: [C++] Problem mit Schleifen und Arrays
Wenn es wirklich bis unendlich geht, dann ist das Programm ja ganz einfach:
Code:
;)
void rechne() {
cout<<"Ergebnis: unendlich\n"; } Bist du sicher dass du die Aufgabenstellung richtig verstanden hast? |
Re: [C++] Problem mit Schleifen und Arrays
Ok also nochmal von ganz vorne:
Die Aufgabe besteht aus 3 Teilen. Teil a): war trivial. => funktioniert Teil b): Man soll einen Startwert, den Schritt und einen Entwert zum Füllen eines Arrays benutzen. z.B. 1,4,13 Also die Zahlen die man verwenden soll sind dann: 1,5,9,13 Dann soll man alle addieren, so dass sie nicht doppelt vorkommen, nur die Ergebnisse dürfen doppelt vorkommen. => funktioniert Teil c): Nun sollen auch die doppelten Ergebnisse nicht mehr angezeigt / berechnet werden. Also es gibt meiner Meinung nach 2 Lösungsansätze: 1.) Man kann da ein Muster erkennen, aber ich kann es damit nicht umsetzen 2.) Ich wollte die jeweiligen Ergebnisse speichern, nach dem Berechnen vergleichen und dann, falls das Ergebnis vorher nicht berechnet wurde, die Addition darstellen. |
Re: [C++] Problem mit Schleifen und Arrays
Ich weiß nicht ob es funktioniert, du kannst es ja mal ausprobieren:
Ich denke es müsste reichen, wenn man so zählt: 1+1 1+2 .. 1+endwert 2+2 2+3 ... 2+endwert 3+3 3+4 ... 3+endwert ... ... endwert+endwert |
Re: [C++] Problem mit Schleifen und Arrays
So habe ich es gemacht. Aber ich muss mal schauen, ich habe das nur mit dem Entwert anders...
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:23 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