[C] problema esercizio
ciao a tutti... stò provando a fare un programmino per l'esercitazione ma non riesco a farlo funzionare. Il programma chiede questo
Esercizio 1
● Acquisire da tastiera una variabile intera, una variabile float e una double
● Visualizzare i rispettivi valori in una unica istruzione di stampa su console
● Eseguire la moltiplicazione fra i tre valori
● Visualizzare il valore della moltiplicazione su console
e io ho provato a scriverlo così
Esercizio 1
● Acquisire da tastiera una variabile intera, una variabile float e una double
● Visualizzare i rispettivi valori in una unica istruzione di stampa su console
● Eseguire la moltiplicazione fra i tre valori
● Visualizzare il valore della moltiplicazione su console
e io ho provato a scriverlo così
/* programma esercitazione numero 1 - 1 */
# include
int main ()
{
int x;
float y, risultante;
double z;
printf (" immetere una variabile intera \n ");
scanf (" %d", &x);
printf (" immettere una variabile float \n ");
scanf (" %f", &y);
printf (" immettere una variabile double \n ");
scanf (" %f", &z);
risultante = x*(y*z);
printf (" il risultato è %f /n",risultante);
system ("pause");
lo sò è semplice ma io sono alle prime armi!
grazie ciao
return 0;
}
Risposte
ti manca la libreria stdlib.h.
Che errore ti da?
eventualemte stampati questo
printf (" il risultato è %f %f %f %d /n",risultante,y,z,x);
cosi li stampi tutti e tre
riporva e fcci spaere
Che errore ti da?
eventualemte stampati questo
printf (" il risultato è %f %f %f %d /n",risultante,y,z,x);
cosi li stampi tutti e tre
riporva e fcci spaere
non và
che errore ti da?
togli il return 0 e metti un bel getch()
togli il return 0 e metti un bel getch()
togli il return 0 e metti un bel getch()
Non vedo il legame tra le due istruzioni, forse intendevi dire di togliere system("pause")? Se lo scopo è semplicemente quello di mantenere aperta la console quando si fa partire l'applicazione da un IDE allora è probabilmente meglio richiedere semplicemente all'IDE di farlo senza far ricorso a istruzioni aggiuntive inutili.
@ fedgt: Perché il risultato è memorizzato in un float? Tutte le 3 variabili vengono promosse a double automaticamente e sembrerebbe quindi il tipo più sensato per il risultato. Non è necessario inserire le parentesi per indicare come eseguire il prodotto: x * y * z funziona correttamente senza problemi. Puoi fare a meno di usare una variabile aggiuntiva per memorizzare il risultato del prodotto in quanto puoi semplicemente scrivere x * y * z come argomento del printf.
Perché lasci uno spazio all'inizio di ogni riga?
A parte questi commenti (e la mancanza di stdlib.h) l'unico errore che ho visto nel tuo codice è l'uso di %f invece che %lf per leggere la variabile double. Il seguente dovrebbe funzionare.
#include <stdio.h> int main() { int x; float y; double z; printf("Immettere una variabile intera: "); scanf("%d", &x); printf("Immettere una variabile float: "); scanf("%f", &y); printf("Immettere una variabile double: "); scanf("%lf", &z); /* Per leggere una variabile double devi usare %lf e non %f */ /* Ho inserito l'operazione nella chiamata al printf (non è necessaria). Avevi inoltre scritto /n invece di \n */ printf("Il risultato è %f\n", x * y * z); return 0; }