Oppure

Loading
26/06/08 7:56
giocala88
Save, questo è la mia implentazione in ANSI C:



#include <stdio.h>
#include <stdlib.h>

void dividi(int number);


int main()
{
int i,
j,
k,
n,
*num_letterali,
**matrice,
p;

double assegnamenti;

printf("\nAcquisire il numero distinto di letterali: ";);
scanf("%d",
&n);

num_letterali = (int *)calloc(n,
sizeof (int));

assegnamenti = pow(2, n);

printf("\n%g%", assegnamenti);

if(n > 30)
printf("\nImpossibile calcolare\n";);

else
{
assegnamenti = pow(2, n);
printf("\nAssegnamneti -> 2^%d\n", n);

printf("\n";);


dividi(assegnamenti);

printf("\n\n";);


}


return 0;
}

void dividi(int number)
{
int n = number,
num,
i,
j;



while(n != 1)
{
n = n / 2;
printf("\n%d\n",n);
printf("\nciao\n";);

printf("\n";);

}

}

....Ora vorrei chiedervi se ad ogni passo di divisione è possibile visualizzare un numero di parole (es: ciao) pari al risultato della divisione in questione...
es:
2^3 = 8
8 / 2 = 4
scrivi 4 volte ciao....
4 / 2 = 2
scrivi due volte ciao...
2 / 2 = 1
scrivi una volta ciao....
Ho provato nella funzione dividi ad includere un printf("\nciao\n";), ma questi viene ciclato solo n volte...8-|
aaa
26/06/08 12:00
gantonio
n e' il valore finale del ciclo principale ... devi usare un'altra variabile per un altro ciclo ...

void dividi(int number) 
{ 
  int n = number;
  int i;

  while(n != 1) 
  { 
    n = n / 2; 

    for(i=0; i<n; i++)
      printf("ciao\n"); 

    printf("\n"); 
  } 
}
aaa