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
Răspunsuri la întrebare
#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;
}