Informatică, întrebare adresată de vargad682, 8 ani în urmă

Să se scrie un program care citeşte n (validati n prin reintroducerea valorii) numere
reale, pe care le stochează într-un tablou alocat dinamic, afişează suma elementelor
negative din tablou, iar la sfârşit eliberează zona de memorie alocată.

Răspunsuri la întrebare

Răspuns de Apollyon
0

Răspuns:

#include <iostream>

#include <limits>

int main() {

   int dimensiuneTablou = 0;

   /* Citim N */

   std::cout << "Introdu N: ";

   std::cin >> dimensiuneTablou;

  /* inițializăm un Array dinamic de N numere reale */

   double* pArrayNumere = new double[dimensiuneTablou];

   /* citim cele N numere */

   for (int i = 0; i < dimensiuneTablou; i++) {

      /* while-ul se va repeta până când Userul va introduce un input valid */

       while (true) {

           /* citim numărul */

           std::cout << "pArrayNumere[" << i << "]: ";

           std::cin >> pArrayNumere[i];

           /* cin.good() returnează true dacă std::cin a putut extage un număr real din inputul utilizatorului */

           if (std::cin.good()) {

               break;

           } else {

              /* dacă nu s-a putut extrage niciun număr real din input repetăm while-ul */

               /* curătăm BUFFER-ul */

               std::cin.clear();

               std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');

           }

       }

   }

   /* la final afișăm numerele din Array */

   for (int i = 0; i < dimensiuneTablou; i++) {

       std::cout << "pArrayNumere[" << i << "]: " << pArrayNumere[i] << "\n";

   }

   /* și eliberăm memoria */

   delete[] pArrayNumere;

   return 0;

}

Alte întrebări interesante