Ciao a tutti!
sono nuovo su questo forum e fra l'altro ho anch'io iniziato a programmare in c; ho un corso all'università. allora, il prof ci ha dato un compito che non riesco a risolvere:
devo creare dei cicli annidati (for...) per calcolare le facoltà dei numeri pari da 2 a 24.
ora, un mio amico mi ha cercato di spiegare come fare, mandandomi una bozza del programma.
if-else mi dice solo se il numero 24 è un numero dispari o pari..quella parte l'ho scritta io.
compilando il tutto (e questa è la parte buffa) il programma però mi calcola le facoltà dei numeri dispari!!
ecco il programma:
#include <stdio.h>
int s = 24;
double result = 0.0;
int i = 1;
int j = 1;
int main ()
{
if (s % 2 != 0){
printf("s=24 è un numero dispari.\n");
}
else {
printf("s=24 è un numero pari.\n");
}
{
for(i = 1; i <= s; i+=2){
result = 1;
for(j = 1; j <= i; j++){
result *= j;
}
printf("%e \n", result);
}
}
return 0;
}
questo è il risultato:
s=24 è un numero pari.
1.000000e+00
6.000000e+00
1.200000e+02
5.040000e+03
3.628800e+05
3.991680e+07
6.227021e+09
1.307674e+12
3.556874e+14
1.216451e+17
5.109094e+19
2.585202e+22
...ma i risultati sono di numeri dispari-->2.585202e+22 è la facoltà di 23!
qualcuno mi potrebbe dare una mano, anche solo spiegandomi in poche righe che cosa succede nella parte for....?
per vostra informazione: il compito mi serve per mercoledì.
grazie mille,
ciao
Elganon