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

Realizați un program care citește de la tastatură N perechi de numere
naturale de forma (x, y) până la introducerea perechii (0, 0) și sortează perechile
în ordine crescătoare după primul element și afișează perechile care au suma
elementelor cea mai mare respectiv cea mai mică. C language


andreidiaconescu18: conditia de oprire care ii pana la urma? ca tu ai pus 2 conditii: N perechi sau perechea 0,0
Adeeeeeeeeeeee: pana la introducerea perechii 0,0 :)

Răspunsuri la întrebare

Răspuns de andreidiaconescu18
0

#include <iostream>

using namespace std;

struct pereche{

   int x;

   int y;

};

int main() {

   struct pereche v[100];

   int n=0;

   bool sem=true;

   do

   {

       int x, y;

       cout<<"x=";

       cin>>x;

       cout<<"y=";

       cin>>y;

       if(x==0 && y==0)

           sem = false;

       else

       {

           v[n].x=x;

           v[n].y=y;

           n++;

       }

   }

   while(sem);

   for(int i=0; i<n-1; i++)

       for(int j=i+1; j<n; j++)

           if(v[i].x>v[j].x)

           {

               struct pereche aux=v[i];

               v[i]=v[j];

               v[j]=aux;

           }

   cout<<"Elementele sortate dupa primul element: ";

   for(int i=0; i<n; i++)

       cout<<"("<<v[i].x<<","<<v[i].y<<") ";

   cout<<endl;

   int suma_max = v[0].x+v[0].y;

   int suma_min = v[0].x+v[0].y;

   for(int i=1; i<n; i++)

   {

       if(suma_max<v[i].x+v[i].y)

           suma_max=v[i].x+v[i].y;

       if(suma_min>v[i].x+v[i].y)

           suma_min=v[i].x+v[i].y;

   }

   cout<<"Elemente suma max: ";

   for(int i=0; i<n; i++)

       if(suma_max==v[i].x+v[i].y)

           cout<<"("<<v[i].x<<","<<v[i].y<<") ";

   cout<<endl;

   cout<<"Elemente suma min: ";

   for(int i=0; i<n; i++)

       if(suma_min==v[i].x+v[i].y)

           cout<<"("<<v[i].x<<","<<v[i].y<<") ";

   return 0;

}

Alte întrebări interesante