Ragazzo triste
06-08-2009, 09:26
Salve amici programmatori,
scrivo questo post perché sono molto incuriosito dal comportamento di un programma che ho scritto in 2 versioni.
E' l'esercizio 2.31 del Deitel : il programma deve stampare un'intestazione,e sotto di essa i numeri,i quadrati e i cubi degli interi da 1 a 10.
L'output deve essere questo :
http://www.pctunerup.com/up/results/_200908/th_20090806102417_Cattura.JPG (http://www.pctunerup.com/up/image.php?src=_200908/20090806102417_Cattura.JPG)
Ora,io ho scritto il programma in 2 versioni.
La prima :
// esercizio deitel 2.31
#include <stdio.h>
#include <stdlib.h>
main()
{
int numero=0,quadrato,cubo;
printf("Numero\t\t\tQuadrato\t\tCubo\n");
quadrato = numero * numero;
cubo = numero * numero * numero;
while(numero <= 10)
{
printf("%d\t\t\t\%d\t\t\t%d\n",numero,quadrato,cubo);
numero=numero+1;
}
system("PAUSE");
}
e la seconda,che fa a meno di definire le variabili quadrato e cubo,ma le chiama,nella printf,direttamente come prodotti :
// esercizio deitel 2.31
#include <stdio.h>
#include <stdlib.h>
main()
{
int numero=0,quadrato,cubo;
printf("Numero\t\t\tQuadrato\t\tCubo\n");
while(numero <= 10)
{
printf("%d\t\t\t\%d\t\t\t%d\n",numero,numero * numero,numero * numero * numero);
numero=numero+1;
}
system("PAUSE");
}
Sapete spiegarmi il perché,nella 1a versione del programma,l'output è sbagliato e nelle colonne dei quadrati
e dei cubi mi viene dato come valore sempre 0 ???
(Nella 2a versione invece è tutto ok...).
Dov'è che sbaglio o non capisco ?
scrivo questo post perché sono molto incuriosito dal comportamento di un programma che ho scritto in 2 versioni.
E' l'esercizio 2.31 del Deitel : il programma deve stampare un'intestazione,e sotto di essa i numeri,i quadrati e i cubi degli interi da 1 a 10.
L'output deve essere questo :
http://www.pctunerup.com/up/results/_200908/th_20090806102417_Cattura.JPG (http://www.pctunerup.com/up/image.php?src=_200908/20090806102417_Cattura.JPG)
Ora,io ho scritto il programma in 2 versioni.
La prima :
// esercizio deitel 2.31
#include <stdio.h>
#include <stdlib.h>
main()
{
int numero=0,quadrato,cubo;
printf("Numero\t\t\tQuadrato\t\tCubo\n");
quadrato = numero * numero;
cubo = numero * numero * numero;
while(numero <= 10)
{
printf("%d\t\t\t\%d\t\t\t%d\n",numero,quadrato,cubo);
numero=numero+1;
}
system("PAUSE");
}
e la seconda,che fa a meno di definire le variabili quadrato e cubo,ma le chiama,nella printf,direttamente come prodotti :
// esercizio deitel 2.31
#include <stdio.h>
#include <stdlib.h>
main()
{
int numero=0,quadrato,cubo;
printf("Numero\t\t\tQuadrato\t\tCubo\n");
while(numero <= 10)
{
printf("%d\t\t\t\%d\t\t\t%d\n",numero,numero * numero,numero * numero * numero);
numero=numero+1;
}
system("PAUSE");
}
Sapete spiegarmi il perché,nella 1a versione del programma,l'output è sbagliato e nelle colonne dei quadrati
e dei cubi mi viene dato come valore sempre 0 ???
(Nella 2a versione invece è tutto ok...).
Dov'è che sbaglio o non capisco ?