PDA

View Full Version : [C++] problema numeri con la virgola


Naruto Arashi
19-11-2007, 11:24
ciao a tutti, sn alle basi del c++. ho un problema cn degli esercizi:

//Programma che chiede all'utente di immettere il lato di un quadrato
// e ne visualizza somma e area.

#include <iostream>
using namespace std;

int main ()

{
float lato, perimetro, area;
cout << "Inserire lato quadrato \n" ;
cin >> lato;
perimetro = lato * 4;
cout << "Il perimetro del quadrato e': " << perimetro << endl;
area = lato * lato;
cout << "L'area del quadrato e': " << area << endl;
system("PAUSE");
return 0;

}


se do al lato un valore con la virgola mi restituisce perimetro e area errati; ad esempio: "lato = 2,1; perimetro = 8 e non 8,4. area = 4 e non 4,41.

problema simile se do un valore cn tante cifre; ad esempio:

Inserire lato quadrato
4567889
Il perimetro del quadrato e': 1.82716e+007
L'area del quadrato e': 2.08656e+013

come risolvo?

grazie :D

airon
19-11-2007, 11:42
Per immettere un numero decimale usi il . vero??? Non devi usare la virgola ;)

Naruto Arashi
19-11-2007, 11:51
Per immettere un numero decimale usi il . vero??? Non devi usare la virgola ;)

oddio /me mette testa sotto la scrivania :D

era quello il problema lal


e per il problema n. 2. cm risolvo?

airon
19-11-2007, 12:08
Eheh dai capita ;)

Per il secondo problema, che poi non è tanto un problema, quei valori sono giusti perchè il float ha notazione esponenziale sopra il milione.

Per ovviare alla cosa puoi usare setiosflags.

Aggiungi:
#include <iomanip>

e prima del primo cout
cout << setiosflags(ios::fixed) << setprecision(4);

dove ios::fixed imposta la visualizzazione di tutte le cifre mentre setprecision imposta n decimali

Dovrebbe essere tutto.

Flexsus
05-12-2012, 12:31
Ragazzi aiuto dove sbaglio?

/* Questo Programma serve per calcolare la percentuale.*/

#include <stdio.h>
#include <stdlib.h>
main()
{int Numero,Percentuale,z,k;
printf(" QUESTO PROGRAMMA SERVE PER CALCOLARE LA PERCENTUALE DI UN NUMERO");
printf("\n\n\n\n dammi un numero a tua scelta e poi premi il tasto <INVIO>");
printf(" \n\n Numero=");
scanf("%d",&Numero);
printf("\n\n\n\n Inserisci la percentuale da calcolare");
printf(" e poi premi il tasto <INVIO>\n\n");
printf(" Percentuale=");
scanf("%d",&Percentuale);
k=Numero*Percentuale/z; printf("\n");
z=100;printf("\n");
printf("\n");
printf(" *******************");
printf("\n * ECCO IL RISULTATO * ");
printf("\n *******************");
printf("\n\n\n");
printf(" ******************************");
printf("\n * *");
printf("\n * *");
printf("\n * %dx%d/100=%d *",Numero,Percentuale,z);
printf("\n * *");
printf("\n * *");
printf("\n ******************************\n\n\n");
system ("PAUSE");return 0; }