Pagini: [1]   În jos
  Imprimă  
Ajutor Subiect: Am nevoie de ajutor urgent (divide et impera)  (Citit de 767 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
danimnd
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 1



Vezi Profilul
« : Februarie 24, 2019, 19:42:35 »

Am acest exercitiu, va rog ajutati-ma nu reusesc sa rearanjez elevii in ordinea crescatoare
----------------------------------------------------------------------
Într-un fișier text sunt scrise următoarele informații:pe primul
rând numărul de elevi din clasă, n, iar pe următoarele n rânduri, pentru fiecare
elev, mediile semestriale la disciplina informatică. În cadrul unui rând, mediile
sunt separate prin spațiu.Fiecare elev se identifică prin numărul de ordine la
citirea din fișier.
- Se citesc datele din fișier și se calculează media anuală a fiecărui elev;
- Pentru identificatorul unui elev, citit de la tastatură, se afișează mediile
semestriale și media anuală;
- Se rearanjează elevii în ordinea crescătoare a mediilor și se afișează
mediile fiecărui elev;
- Se scriu informațiile obținute în urma prelucrărilor într-un alt fișier.
-------------------------------------------------------------------------------------
#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;
ifstream f("elevi.in");
ofstream g("elevi.out");
int n;
float mf[101],m1[101],m2[101],ma[101];
void quicksort(int p,int u)
{
    if(p<u)
    {
        int m,i=p,j=u,pi=0,pj=1;
        while(i<j)
        {
            if(ma>ma[j])
            {
                swap(ma,ma[j]);
                swap(pi,pj);
            }
            i=i+pi;
            j=j-pj;
        }
        m=i;
        quicksort(p,m-1);
        quicksort(m+1,u);
    }
}
int dei(int p,int u,float x)
{
    int m;
    if(p<=u)
    {
        m=(p+u)/2;
        if(mf[m]==x)
            return m;
        else
            if(x>mf[m])
            return dei(m+1,u,x);
        else
            return dei(p,m-1,x);
    }
    else
        return 0;
}
int main()
{
    int i;
    f>>n;
    for(i=1;i<=n;i++)
    {
        f>>m1;
        f>>m2;
    }
    for(i=1;i<=n;i++)
    {
        mf=(m1+m2)/2;
        ma=(m1+m2)/2;
    }
    cout<<setprecision(2)<<fixed;
    cout<<"Vreau sa vad mediile la elevul:";cin>>i;
    if(i>n)
        g<<"nu exista elevul "<<i;
    else
        g<<m1<<" "<<m2<<" "<<mf<<endl;
    quicksort(1,n);
    for(i=1;i<=n;i++)
        cout<<ma<<" ";
    cout<<endl;
    for(i=1;i<=n;i++)
        cout<<"elevul "<<dei(1,n,ma)<<" cu media"<<mf[dei(1,n,ma)]<<endl;
}

Memorat
Pagini: [1]   În sus
  Imprimă  
 
Schimbă forumul:  

Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines