Vă rog ajutați-mă să creez un program în C++,după condițiile din mai în jos
Răspunsuri la întrebare
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("bursa.in");
ofstream out("bursa.out");
usigned int n; // n este numar natural
// Declarare structura student cu variabilele aferente
struct student{
int nr_matricol, ex1, ex2, ex3;
float nme; // media notelor
int b; // bursa
} a[100];
void rezolvare()
{
// citim numarul de studenti
in>>n;
// in timpul citirii rezolvam si cerinta.
// pentru fiecare rand din fisierul bursa.in executam
for(int i=1;i<=n;i++)
{
/* citire date student*/
in>>a[i].nr_matricol;
in>>a[i].ex1;
in>>a[i].ex2;
in>>a[i].ex3;
/*
Pentru fiecare student in parte vom calcula media si bursa aferenta, in functie de formula data in cerinta
*/
a[i].nme=(a[i].ex1+a[i].ex2+a[i].ex3)/3; // calculam media notelor. Media aritmetica inseamna suma numerelor date impartite la cate sunt
/*
Vom folosi formula din cerinta pentru a determina bursa fiecarui student.
Daca media calculata mai sus este mai mica decat 6, atunci bursa va fi 0;
Altfel
Daca media este intre 6 si 7 atunci bursa va fi 150 pentru studentii care au media intre notele 6 si 7;
Altfel
Daca media este mai mare decat 7 atunci bursa va fi egala cu 40 * media obtinuta
*/
if(a[i].nme<6)
a[i].b=0;
else
if(a[i].nme>=6 && a[i].nme <7)
a[i].b=150;
else
if(a[i].nme>=7)
a[i].b=40*a[i].nme;
}
/*
Ordonam descrescator toata structura in functie de media fiecarui student ( de la cel mai mare la cel mai mic )
Dar ca sa facem aceasta ordonare corect trebuie ca si celelalte date ale studentilor sa fie ordonate pentru a afisa datele fiecarui student corect.
*/
for(int i=1;i<n;i++)
for(int j=i+1;j<=n;j++)
{
if(a[i].nme<a[j].nme)
{
int aux=a[i].nr_matricol;
a[i].nr_matricol=a[j].nr_matricol;
a[j].nr_matricol=aux;
int aux1=a[i].ex1;
a[i].ex1=a[j].ex1;
a[j].ex1=aux1;
int aux2=a[i].ex2;
a[i].ex2=a[j].ex2;
a[j].ex2=aux2;
int aux3=a[i].ex3;
a[i].ex3=a[j].ex3;
a[j].ex3=aux3;
int aux4=a[i].nme;
a[i].nme=a[j].nme;
a[j].nme=aux4;
int aux5=a[i].b;
a[i].b=a[j].b;
a[j].b=aux5;
}
}
// afisare
for(int i=1;i<=n;i++)
out<<"[ "<<a[i].nr_matricol<<" ] [ "<<a[i].ex1<<" "<<a[i].ex2<<" "<<a[i].ex3<<" ] [ "<<a[i].nme<<" ] [ "<<a[i].b<<" ]"<<endl;
}
int main()
{
rezolvare(); // apelul subprogramului.
}
if(a[i].nme??????????????? sau cu o variabila ajutatoare de tip student pentru a interschimba integral ca structuri pe a[i] si a[j] , dar nu la fiecare camp?
Explică tot ceea ce faci. Imaginează-ți că cel ce a postat întrebarea nu știe de unde să înceapă și nu are noțiunile de bază." si "Folosește pași
Încearcă să îți stucturezi răspunsurile folosind mai mulți pași pentru a ajunge la răspunsul final. Scopul nostru este să îi facem pe alții să înțeleagă și ca pe viitor să reușească să rezolve singuri."
tr sa declari o structura cu 6 campuri, sa citesti n si cele 4 date pt fiecare student si le stochezi intr-un vector elementele caruia sunt structuri, paralel afli notamedieexamene si dupa ea bursa. Dupa ce completezi vectorul faci o sortare in descrestere dupa campul bursa a vectorului dupa ce trimiti in fisierul de iesire datele din vectorul sortat