Informatică, întrebare adresată de Criystian09, 9 ani în urmă

Deci am o structura ce contine date legate de figuri geometrice în ordinea următoare :
codsf ( codul figurii ) , volum de ex:
001 124.76
002 194.11
003 684.3
004 124.76
005 266.2
006 194.11

Datele sunt păstrate în felul următor
struct Sfere
{
char codsf[5];
float ,volum;
} sf[100];

Încerc sa afisez figurile de volum identic astfel că la afișare voi avea :
FIGURILE DE VOLUM IDENTIC SUNT :
001 124.76
004 124.76
002 194.11
006 194.11

Programul îl realizez în c++ .
Rog pe cei ce cunosc să mă ajute .

Răspunsuri la întrebare

Răspuns de boiustef
0

Răspuns:

#include <iostream>

using namespace std;

struct Sfere

{

   char codsf[5];

   float volum;

}sf[100];

int n, i, j, ap[100]={0};

int main()

{

   cout << "dati br. de sfere, n= "; cin >> n;

   cout << "pt. fiecare sfera introdu codul si volumul separate prin spatiu" << endl;

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

   {

       cin >> sf[i].codsf >> sf[i].volum;

   }

   cout << "FIGURILE DE VOLUM IDENTIC SUNT: \n";

   int identic=0;

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

   {

       if (ap[i]==0){

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

       {

           if (sf[i].volum==sf[j].volum && ap[j]==0)

           {

               if (ap[i]==0)

               {

                   cout << sf[i].codsf << " " << sf[i].volum << "\n";

                   ap[i]=1;

               }

               cout << sf[j].codsf << " " << sf[j].volum << "\n";

               ap[j]=1;

               identic=1;

           }

       }

       }

   }

   if (identic==0) cout << "opss... nu exista";

}

Explicație:

am folosit un vector ajutător în care puneam 1 în caz că corespunzătoarea sferă şi-a găsit identic. Asta e făcut pentru a nu cerceta încă ecele sfere.

Alte întrebări interesante