1. Într-un vector cu înregistrări se păstrează atributele a n segmente din plan. Atributele
segmentului sunt punctele de la extremitățile lui (precizate prin coordonatele lor) şi
lungimea segmentului. Să se afişeze segmentul (prin coordonatele punctelor din
extremități) care are lungimea cea mai mare şi segmentul care are lungimea cea mai
mică. Dacă există mai multe segmente care îndeplinesc aceste proprietăți, să se
afişeze toate segmentele.

Vă rog am nevoie urgent de ajutor!​

Răspuns :

Răspuns:

#include <iostream>

using namespace std;

struct sgm{

   int a,b,len;

};

int main()

{

   int n;

   cin >> n;

   sgm vs[n];

   cin >> vs[0].a >> vs[0].b >> vs[0].len;

   int a_min=vs[0].a, b_min=vs[0].b, len_min=vs[0].len;

   int a_max=vs[0].a, b_max=vs[0].b, len_max=vs[0].len;

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

       cin >> vs[i].a >> vs[i].b >> vs[i].len;

       if (vs[i].len<len_min) {

           len_min=vs[i].len; a_min=vs[i].a; b_min=vs[i].b;

       }

       if (vs[i].len>len_max) {

           len_max=vs[i].len; a_max=vs[i].a; b_max=vs[i].b;

       }

   }

   cout << "Segmente de lungimi minime: ";

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

       if (vs[i].len==len_min) {

           cout << "[" << vs[i].a << ";" << vs[i].b << "];  ";

       }

   }

   cout << endl;

   cout << "Segmente de lungimi maxime: ";

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

       if (vs[i].len==len_max) {

           cout << "[" << vs[i].a << ";" << vs[i].b << "];  ";

       }

   }

   return 0;

}

Explicație:

Sper că am intuit corect cerința din enunț... Succese!