Oppure

Loading
24/06/08 16:36
giocala88
Salve a tutti, ho scritto questo codice sperando che qulcuno possa aiutarmi...il problema è questo:
Devo acquisire un numero n, elevare 2^n (es: 2^3 = 8)...e fin qui ci siamo...
il problema sta nel dimezzare (es: il numero 8) fino ad incontrare l'elemento di posto a[0] dell'array allocato dinamicamente...
es: 2 ^3 = 8;
8 / 2 = 4;
4 / 2 = 2;
2 / 2 = 1
come posso fare???...è lo stesso procedimento usato per dimezzare fino ad 1 un numero naturale n???spero di essere stato chiaro...grazie....
Ultima modifica effettuata da giocala88 24/06/08 17:11
aaa
24/06/08 22:56
pierotofy
Postato originariamente da giocala88:
ho scritto questo codice


Penso ti sia dimenticato di postarlo.
Il mio blog: piero.dev
30/06/08 20:21
ciao giocala, non ho capito con esattezza il tuo problema, ma ho provato a darti comunque una soluzione.... io ho fatto cosi:
#include <stdio.h>

int main(void)
{
int val=2,i,n; /* Variabili utilizzate:
val - valore finale della potenza di 2
i - indice del ciclo for
n - valore preso in input */

int* a; /* puntatore alla prima cella del vattore allocato dinamicamente */

printf("Inserisci n: ";);
scanf("%d",&n);
for (i=1;i<n;i++) /* ciclo per l'elevamento a potenza */
val*=2;

a=(int)malloc(sizeof(int)*val); /* Allocazione dinamica array con lunghezza ugiuale alla potenza di 2 */

while (!val<=0) /* cicla finche il valore finale della potenza e < = a 0 */
{
printf("\n\n\t%d",*(a+val)); /* stampa il contenuto della cella puntata dal valore attuale di val val*/
val/=2;
}
return 0;
}

Spero di avere capito quale era il tuo problema, altrimenti prova a lasciare anche il codice che hai fatto tu :k: