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

Creati un program in c++ conform conditiei din poza problema 13

Anexe:

boiustef: in disc.out am obţinut următoarele:
0 0 10
4 2 5
2 1 3
-2 -3 1
ce diferă de cel din enunţ. Dar am verificat şi întradevăr discul cu raza 5 se conţine şi el în discul cu rază maximă
Vladislavgrisun: Mulţumesc

Răspunsuri la întrebare

Răspuns de boiustef
0

Răspuns:

Explicație:

#include <iostream>

#include <fstream>

#include <cmath>

using namespace std;

ifstream f("disc.in");

ofstream g("disc.out");

struct disc{float x,y,R;}d[30];

int n,i,j;

float dist;

int main()

{

   f >> n;

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

   {

       f >> d[i].x >> d[i].y >> d[i].R;

   }

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

   {

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

       {

           if (d[i].R < d[j].R) swap(d[i],d[j]);

       }

   }

   g << d[0].x << " " << d[0].y << " " << d[0].R << "\n";

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

   {

       dist=sqrt(pow(d[0].x-d[i].x,2)+pow(d[0].y-d[i].y,2));

       if (dist+d[i].R<d[0].R)

             g << d[i].x << " " << d[i].y << " " << d[i].R << "\n";

   }

}

Alte întrebări interesante