FOUT: expressie moet een integraal of niet gecopieerd enUM-type

Ik wil de grootte van de array van de gebruiker krijgen, maar wanneer ik gebruik (float *temp = new float[size];), ik heb een fout opgetreden ” integraal of niet-gecopireerd ENUM-type. ” Wanneer ik het nummer invoer, werkt het netjes tot het bereiknummer. Begin daarna vanaf afwijking van de standaarddeviatie, de berekening heeft alles verprutst.

Als ik intvoor de ‘Size’ gebruik en houd de ‘TEMP’ als float, gaf het me een andere fout.

Hoe kan ik dit oplossen?


Antwoord 1, Autoriteit 100%

Uw variabele sizewordt gedeclareerd als: float size;

U kunt geen variabele drijvende punt gebruiken als de grootte van een array – het moet een geheel getal-waarde zijn.

U zou het kunnen werpen om naar een geheel getal te converteren:

float *temp = new float[(int)size];

Uw ander probleem is waarschijnlijk omdat u buiten de grenzen van de array schrijft:

  float *temp = new float[size];
    //Getting input from the user
    for (int x = 1; x <= size; x++){
        cout << "Enter temperature " << x << ": ";
        // cin >> temp[x];
        // This should be:
        cin >> temp[x - 1];
    }

Arrays zijn nul gevestigd in C++, dus dit gaat verder schrijven dan het einde en schrijf nooit het eerste element in uw originele code.

Other episodes