Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*Se citeste un vector in care sunt inregistrati elevii unei clase. Pentru fiecare elev vom retine numele, doua note si media.
- Afisati elevii clasei sortati descr. dupa medie.
- Afisati elevii care nu sunt corigenti ordonati alfabetic.
- */
- #include <iostream>
- #include <cstring>
- #include <fstream>
- using namespace std;
- ifstream f("date.in");
- struct elev
- {
- char nume[256];
- float nota1,nota2;
- float media;
- } v[100],w[100];
- int main()
- {
- int n,i,j;
- f>>n;
- for (i=1; i<=n; i++)
- {
- f>>v[i].nume;
- f>>v[i].nota1>>v[i].nota2;
- v[i].media=(v[i].nota1 + v[i].nota2)/2;
- } // se face media
- for (i=1; i<n; i++)
- for (j=i+1; j<=n; j++)
- if (v[i].media < v[j].media)
- swap(v[i],v[j]); // se ordoneaza descr dupa medie
- for (i=1; i<=n; i++)
- cout<<v[i].nume<<" "<<v[i].media<<'\n'; // se afiseaza elevii descr dupa medie
- int k=0,m; // se face un vector nou pentru a memora elevii care nu sunt corigenti
- for (i=1; i<=n; i++)
- if (v[i].media>=5)
- {
- k++;
- w[k]=v[i];
- }
- cout<<'\n';
- m=k;
- for (i=1; i<m; i++) // se ordoneaza alfabetic (dupa prima litera) elevii
- for (j=i+1; j<=m; j++)
- if (w[i].nume[0] > w[j].nume[0])
- swap(w[i],w[j]);
- for (i=1; i<=m; i++) // se afiseaza in ordine alfabetica
- cout<<w[i].nume<<" "<<w[i].media<<'\n';
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement