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

Un tablou unidimensional de dimensiune n (n<50) memorează numele și media generală ale elevilor claselor a IX-a. Datele se citesc de la tastatură. Să se ordoneze tabloul, în ordine descrescătoare a mediilor generale. Creați fișierul text bilet25.txt, care va conține n linii, pe fiecare linie aflându-se numele și media unui elev. Prima linie va conține datele elevului cu media cea mai
mare ș.a.m.d.

Răspunsuri la întrebare

Răspuns de n0nname
1

Răspuns:

#include <iostream>

#include <fstream>

struct elev {

   std::string nume;

   float medie;

};

//std::fstream readwrite("date.txt"); // daca vrei sa memoreze intr-un fisier .txt foloseste in loc de std::cout<< si std::cin , readwrite<< si readwrite>>

int main()

{

   unsigned int size;

   std::cout << "Nr elevi: "; std::cin >> size; std::cout << "\n";

   elev array[50]; //max 50 elevi

   for (unsigned int i = 0; i < size; i++)

   {

       std::cout << i + 1 << ".Nume: "; std::cin >> array[i].nume; std::cout << "  Medie: "; std::cin >> array[i].medie; std::cout << "\n";

   }

   //descending sort

   for (unsigned int index = 0; index < size-1; index++)

   {

       struct elev temp; // store current elev

       for (unsigned int index_next = 0; index_next < (size-1-index); index_next++)

       {

           //bubble sort

           if (array[index_next].medie < array[index_next + 1].medie)

           {

               temp = array[index_next];

               array[index_next] = array[index_next + 1];

               array[index_next + 1] = temp;

           }

       }

   }

   for (size_t i = 0; i < size; i++)

   {

       std::cout << "Nume:" << array[i].nume << ", Medie:" << array[i].medie<<"\n";

   }

   //by N0nNaMe

}

Explicație:

Alte întrebări interesante