Problema codice c++

di il
1 risposte

Problema codice c++

]buonasera, ho cominciato a studiare c++ e mi stavo dilettando a creare un programma per calcolare l'area di un poligono.
ma non mi legge i "cin" dandomi l'impossibilità di dare informazioni, ecco il codice
#include<iostream>
#include<math.h>
#include<stdio.h>

using namespace std;

int main ()

{ int f,c,z,r,x,dt,xe,p,q;

cout << "seleziona la tua figura geometrica con i seguenti carateri";
cout << "\n Q: quadrato \n r:rettangolo \n c: cerchio \n";
 cin >> f;

if (f==c) 


  cout << "\n inserisci i dati che possiedi \n";
   cin >>  x;
   cout << "iserisci che tipo di dato hai raggio r  \n d diagonale: \n ";
      cin >> z;

 if (z==r)
 cout << (x^2)*3.14;



 else 
 cout << ((x/2)*(x/2))*3.14; 




if (f==q)



 cout << "iserisci il dato che possiedi";
 cin >> dt;
 cout << "specifica che tipo di dato hai \n p: perimetro \n l: lato \n d: diagonale";
 cin >> xe;
 if (xe==p)
 cout << (dt/4)*(dt/4);

 if (xe==l)
 cout << dt*dt;
 

 


return 0;
}
mi aiutate a risolverlo?
grazie in anticipo

1 Risposte

  • Re: Problema codice c++

    Ciao, dark
    Il problema non è il cin, bensì le varie if:
    if (f==c)
    , ad esempio, compara il contenuto della variabile f con quello della variabile c (che è vuota!)
    Se quello che vuoi fare è verificare se f è uguale alla lettera 'c', allora la if che ti serve è
    if (f == 'c')
    (una lettera fra apici indica che si sta passando un singolo carattere).

    Inoltre, noto che hai fatto un errore con le if:
    
    if (f == 'c')
    cout << "\n inserisci i dati che possiedi \n";
    cin >>  x;
    ...
    
    In questo caso se f è uguale a 'c' viene eseguito il cout, mentre il "cin >> x;" viene eseguito in ogni caso!
    Se tu vuoi fare in modo che molti comandi siano eseguiti solo se una condizione è vera, devi metterli fra parentesi graffe (se le ometti, la if eseguirà solo ultimi primo comando che la segue):
    
    if (f=='c')
    {
      cout << "\ninserisci i dati che possiedi \n";
      cin >> x;
      ... //Tutta questa parte verrà eseguita solo se la if è vera
    }
    
Devi accedere o registrarti per scrivere nel forum
1 risposte