Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ -
Forum - C/C++ - "ciclare" elementi...

Avatar
giocala88 (Normal User)
Expert


Messaggi: 243
Iscritto: 23/04/2008

Segnala al moderatore
Postato alle 9:56
Giovedì, 26/06/2008
Save, questo è la mia implentazione in ANSI C:

Codice sorgente - presumibilmente Plain Text

  1.  


#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-|

PM Quote
Avatar
gantonio (Normal User)
Guru^2


Messaggi: 1532
Iscritto: 09/09/2007

Segnala al moderatore
Postato alle 14:00
Giovedì, 26/06/2008
n e' il valore finale del ciclo principale ... devi usare un'altra variabile per un altro ciclo ...

Codice sorgente - presumibilmente C/C++

  1. void dividi(int number)
  2. {
  3.   int n = number;
  4.   int i;
  5.  
  6.   while(n != 1)
  7.   {
  8.     n = n / 2;
  9.  
  10.     for(i=0; i<n; i++)
  11.       printf("ciao\n");
  12.  
  13.     printf("\n");
  14.   }
  15. }


PM Quote