View Full Version : [C]calcolo del quadrato..
banana snapple
24-04-2007, 10:28
ciao a tutti, ho questo programma che calcola il quadrato di un numero però quando vado ad eseguirlo mi esce:
il quadrato di 1 è..
il quadrato di 2 è.. fino al numero che scelgo
come faccio a far uscire soltanto il quadrato del numero che dico io? grazie a tutti :)
ps: il codice l'ho trovato non l'ho scritto io, però mi serve per la scuola
#include <stdio.h>
#include <process.h>
int quadrato(int);
main ()
{
int n, i;
printf("inserisci il numero: ");
scanf("%d", &n);
for (i=1; i<=n; i++)
{
printf("il quadrato di %d e' %d\n", i, quadrato (i));
}
return;
}
int quadrato(int X)
{
int i, y;
y=0;
for (i=0; i<=X-1; i++)
{
y=y+(2*i)+1;
}
return y;
}
Ziosilvio
24-04-2007, 12:09
Sai come funziona il ciclo for, veeero?
banana snapple
24-04-2007, 12:35
Sai come funziona il ciclo for, veeero?
diciamo di si :D
Ziosilvio
24-04-2007, 12:57
diciamo di si
Allora diciamo che hai tutta la conoscenza che ti serve per capire come fare a far uscire solo il valore del quadrato che dici tu.
Ti manca solo un po' di applicazione.
banana snapple
24-04-2007, 13:04
Allora diciamo che hai tutta la conoscenza che ti serve per capire come fare a far uscire solo il valore del quadrato che dici tu.
Ti manca solo un po' di applicazione.
dai guarda a volte mi impiccio da solo e non riesco ad uscirne anche se la cosa è facile, e questa è una di quelle volte...ti prego dai :help:
wingman87
24-04-2007, 13:07
Sei sicuro che il tuo prof ti abbia chiesto di fare l'esercizio in questo modo? Se il testo dell'esercizio dice solo di fare il quadrato di un numero e tu porti questo il prof capisce subito che hai copiato..
banana snapple
24-04-2007, 13:15
Sei sicuro che il tuo prof ti abbia chiesto di fare l'esercizio in questo modo? Se il testo dell'esercizio dice solo di fare il quadrato di un numero e tu porti questo il prof capisce subito che hai copiato..
si devo farlo in questo modo, per quanto riguarda il fatto che l'ho copiato, l'ho preso da degli appunti che ha scritto lui sul suo sito...il problema è solo che non ho capito come fare a far uscire solo il quadrato del numero che dico io e basta
printf("inserisci un numero: ");
scanf("%d",&n);
printf("il quadrato e': %d", n*n);
non capisco.. se lo vuoi solo per un numero sarà così.. senza cicli..
banana snapple
24-04-2007, 13:32
printf("inserisci un numero: ");
scanf("%d",&n);
printf("il quadrato e': %d", n*n);
non capisco.. se lo vuoi solo per un numero sarà così.. senza cicli..
lo so che andrebbe fatto cosi, ma deve esserci la funzione...altrimenti non starei qui a chiedere
int quadrato(x);
int main() {
int x;
printf("inserisci un numero: ");
scanf("%d",&x);
printf("il quadrato e': %d", quadrato(x));
}
int quadrato(x) {
x*=x;
return x;
}
banana snapple
24-04-2007, 13:39
int quadrato(x);
int main() {
int x;
printf("inserisci un numero: ");
scanf("%d",&x);
printf("il quadrato e': %d", quadrato(x));
}
int quadrato(x) {
x*=x;
return x;
}
uao grazie :) , qualcuno che ora mi spiega perchè il prof ci ha messo due cicli for? :confused: :mbe:
uao grazie :) , qualcuno che ora mi spiega perchè il prof ci ha messo due cicli for? :confused: :mbe:
uno per stampare tutti i quadrati da 1 a n e uno per calcolare il quadrato in qualche modo strano con una funzione ricorsiva.. asd
wingman87
24-04-2007, 13:46
Non è una funzione ricorsiva.
Ti faccio notare che la funzione di ndakota è molto diversa da quella del tuo prof, ti consiglio di leggere bene il testo dell'esercizio che ti ha dato il prof x capire quale devi usare.
banana snapple
24-04-2007, 13:47
uno per stampare tutti i quadrati da 1 a n e uno per calcolare il quadrato in qualche modo strano con una funzione ricorsiva.. asd
ok thak you! erano quei due cicli che mi facevano andare in crisi e non ci capivo niente grazie mille :)
Non è una funzione ricorsiva.
Ti faccio notare che la funzione di ndakota è molto diversa da quella del tuo prof, ti consiglio di leggere bene il testo dell'esercizio che ti ha dato il prof x capire quale devi usare.
vero errore mio.. non avevo visto che era dentro il ciclo.. non è ricorsiva..
banana snapple
24-04-2007, 13:49
Non è una funzione ricorsiva.
Ti faccio notare che la funzione di ndakota è molto diversa da quella del tuo prof, ti consiglio di leggere bene il testo dell'esercizio che ti ha dato il prof x capire quale devi usare.
il prof ha detto che devo fare un programma che calcoli il quadrato di un numero usando una funzione, quindi secondo me va bene come ha fatto ndakota...se poi non va bene non so che dirgli al prof...si spiegasse meglio!! :D
il prof ha detto che devo fare un programma che calcoli il quadrato di un numero usando una funzione, quindi secondo me va bene come ha fatto ndakota...se poi non va bene non so che dirgli al prof...si spiegasse meglio!! :D
ma si secondo me va bene ci sono piu modi mica uno solo.. avresti pure potuto usare anche la funzione della math.h pow(x,y); che restituisce x elevato alla y-esima potenza.. nel tuo caso x=pow(x,2);
Ziosilvio
24-04-2007, 14:33
qualcuno che ora mi spiega perchè il prof ci ha messo due cicli for?
Forse, perché una parte dell'esercizio era proprio capire cosa fa ciascuno dei due cicli for.
Discorso simile per la funzione che calcola il quadrato, corretta ma non il massimo dell'efficienza.
banana snapple
24-04-2007, 14:40
Forse, perché una parte dell'esercizio era proprio capire cosa fa ciascuno dei due cicli for.
Discorso simile per la funzione che calcola il quadrato, corretta ma non il massimo dell'efficienza.
aspetta forse sono io che mi sono spiegato male all'inizio...il prof ha detto fate sto programma non pensando però che il codice l'aveva scritto sul suo sito, allora io da furbo che sono :D, sono andato l'ho copiato ma non capendo ho chiesto qui, ecco tutto :)
mi sono dimenticato di mettere il tipo nel passaggio del parametro della funzione..
banana snapple
24-04-2007, 17:49
mi sono dimenticato di mettere il tipo nel passaggio del parametro della funzione..
no problem, me ne sono accorto già prima mi ero dimanticato di dirtelo :)
banana snapple
26-04-2007, 14:06
ok lo so sono un rompiballe pero devo fare la stessa cosa solo che devo calcolare la potenza....piccolo problema...nn va
#include <stdio.h>
#include <math.h>
#include <process.h>
int potenza(int x);
main ()
{
int x, y;
printf("Inserisci il numero: ");
scanf("%d", &x);
printf("inserisci l'elevazione: ");
scanf("%d", &y);
printf("La potenza e': %d", potenza(x));
}
int potenza(int x)
{
int y, z;
z=pow(x, y);
return x;
}
dove sbaglio? possibilmente spiegatemi il perchè ancora grazie
Ziosilvio
26-04-2007, 14:42
dove sbaglio?
Una potenza è costituita da una base, e da un esponente. Qui, la tua funzione potenza ha un argomento solo; e non si capisce se deve essere la base o l'esponente.
Oltretutto, si chiama potenza ma calcola la funzione identità. (x è l'unico argomento, non viene modificato, e viene restituito.) Non è che un barattolo di senape comincia a contenere nutella perché tu ci hai appiccicato sopra un'etichetta con scritto "NUTELLA".
E se pure il valore restituito fosse z e non x, comunque non avresti alcuna garanzia che la funzione si comporti correttamente, perché y non viene inizializzato, e potrebbe contenere qualsiasi valore.
Se la cosa ti può risollevare il morale, probabilmente il prof intendeva un elevamento a potenza intera positiva... che puoi ricondurre a una sequenza di moltiplicazioni.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.