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

Varooooooooooog in C++
sa aratati cum faci fisierul

Anexe:

Răspunsuri la întrebare

Răspuns de ElenaSF
4

Răspuns:

#include<iostream>

#include<fstream>

using namespace std;

struct note_purtare {

 int nmatr;

 int nt;

 int nam;

 int np;

}note[30];

int main() {

int i = 0, n;

fstream f("purtare.in");

f >> n;

while (f)

{

 f >> note[i].nmatr;

 f >> note[i].nt;

 f >> note[i].nam;

 f >> note[i].np;

 if (note[i].nt - note[i].nam > 50)

  note[i].np = 4;

 else

  note[i].np = note[i].np - (note[i].nt - note[i].nam) / 10;

 i++;

}

ofstream out("purtare.out");

for (int j = 0; j <= 4 - 1; j++)

 for (int k = j; k < 4; k++)

  if (note[j].np < note[k].np)

   swap(note[j], note[k]);

i= 0;

out << n<<endl;

while (i < n) {

 out << note[i].nmatr << " ";

 out << note[i].nt << " ";

 out << note[i].nam << " ";

 out << note[i].np << " ";

 i++;

 out << endl;

}

}


ElenaSF: afisam pe prima pozitie din fisier cati elevi avem
ElenaSF: apoi in ultimul while afisam datele fiecarul elev care vor fi aranjate in ordinea notei la purtare
qdddddddddddqqqqqjff: Multumesc mult
qdddddddddddqqqqqjff: poti sami explici ce functie are if
qdddddddddddqqqqqjff: si else
ElenaSF: in if calculam nota la purtare
ElenaSF: if (note[i].nt - note[i].nam > 50) // scadem din numarul total de absente pe cele motivate, daca elevului ii raman mai mult de 50 de absente motivate atunci nota lui la purtare va lua valoarea 4
ElenaSF: daca nu nota la purtare va fi calculata asa/; note[i].np = note[i].np - (note[i].nt - note[i].nam) / 10; adica note[i].np reprezinta nota la purtare a uni elev care initial e 10, din nota 10 scadem cate un punct pentru fiecare 10 absente nemotivate
ElenaSF: dau un exemplu din problema sa fie mai clar:
ultimul elev are 37 de absente in total si 5 absente motivate, iar nota initiala la purtare este 10;
nota lui finala la purtare va fi 10-(37-5)/10, 37-5 reprezinta numarul de absente nemotivate si impartim la 10 pentru scadem un punct pentru fiecare 10 absente nemotivate 32/10=3 deci scadem 3 puncte
sdgasdfdfs: da ce metoda de sortare ai folosit a insertie
Alte întrebări interesante
Limba română, 9 ani în urmă