Frage

#include <iostream>
using namespace std;

int main ()
{
 int size = 0;
 int* myArray = new int [size + 1];
 cout << "Enter the exponent of the first term: ";
 cin >> size;
 cout << endl;
 for (int i = size; i >= 0; --i)
 {
  cout << "Enter the coefficient of the term with exponent " 
   << i << ": ";
  cin >> myArray[i];
 }
 for (int i = size; i >= 0; --i)
 {
  cout << i << endl;
 }
 return 0;
}

Warum erhalte ich eine Assertion Fehler bei der Eingabe von mehr als 2? Dies ist die Vorstufe zu einem Polynom-Programm, wo der Index des Arrays ist die Leistung eines jeden Begriffs und das Element an array [Index] ist der Koeffizient.

War es hilfreich?

Lösung

Ihr Array zugeordnet ist ein int sein [1]. Es muss zugeteilt nach Sie in dem Größenwert zu lesen.

Andere Tipps

Sie initialisieren Array, wenn size = 0, so dass eine Array-Größe von 1 Sie erhalten Ihre Behauptung Fehler, wenn Sie außerhalb der Array-Grenzen gehen (1).

myArray immer hat Größe 0 + 1 = 1 i an beginnt, was der Benutzer eingegeben wird, und das erste Array-Zugriff Sie myArray machen ist [i]. Also, sagen die Benutzereingaben 5, Array hat eine Größe 1 und Ihnen den Zugriff myArray [5]. Es wird scheitern!

Ich würde die Anordnung nach der Eingabe Größe zuordnen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top