Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 20
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    16

    [c] come faccio a stampare le tutte le possibili combinazioni di n bit??

    salve, sto cominciando ad avvicinarmi al C per motivi di studio e dovrei risolvere il seguente esercizio: scrivere una funzione che stampi tutte le possibile combinazioni di n bit, dove il valore di n(<16) dovrà essere passato come argomento della funzione. (non so come procedere)

    codice:
    float combinazioni (int n)    /*definisco la funzione, è corretto farle ritornare un tipo float? */
               {
                 int i;
                 float comb;
    
    /*da questo punto in poi non so come fare ad indicare che il numero n rappresenta il numero di bit da
     stampare e da modificare in tutte le combinazioni qualcuno mi saprebbe suggerire come procedere??*/
       
                 }
    
      return comb;
    non ho la minima idea di come fare, cioè so che dovrei utilizzare dei cicli for e che uno di questi dovrebbe avere al suo interno un printf che mi stampi ad ogni giro del ciclo la combinazioni di bit, ma, appunto non so come far fare per indicare che n è il numero di bit e che essi devono essere stampati in tutte le sue possibili combinazioni

  2. #2
    Tutte le combinazioni di N bit corrispondono a tutti i numeri da 0 a 2^N-1 espressi in binario. Se ti scrivi una funzione per scrivere un numero in binario il tutto si riduce ad un for da 0 a 2^N-1 richiamando la funzione in questione.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802

    Re: [c] come faccio a stampare le tutte le possibili combinazioni di n bit??

    Originariamente inviato da pietroA
    [code]
    float combinazioni (int n) /*definisco la funzione, è corretto farle ritornare un tipo float? */
    Hai detto che la tua funzione deve solo stampare le combinazioni... Se ci ragioni un attimo capirai che far restituire qualcosa a questa funzione non ha senso.
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    16
    @MItaly, si lo so che tutte le combinazioni degli n bit corrispondono a tutti i numeri fra 0 e 2^(n-1), la parte difficile è come stampare i numeri in binario??

    @Alex'87, hai ragione ho scritto una porcata, non ho riflettuto sul fatto che devo solo stampare e non aspettarmi nulla ritornato, quindi la funzione deve ritornare un void!! grazie per avermelo fatto notare!

  5. #5
    Originariamente inviato da pietroA
    @MItaly, si lo so che tutte le combinazioni degli n bit corrispondono a tutti i numeri fra 0 e 2^(n-1), la parte difficile è come stampare i numeri in binario??
    Conosci gli operatori bitwise (& e <<, in particolare)?
    Amaro C++, il gusto pieno dell'undefined behavior.

  6. #6
    Utente di HTML.it L'avatar di linoma
    Registrato dal
    Mar 2010
    Messaggi
    1,346
    te lo scirvo io il codice va

    codice:
    unsigned long l;
    
    l=0;
    do{
        printf("%08X\n",l)
        l++;
    }while(l != 0);
    vale solo x 32 bits
    Per gli Spartani e Sparta usa spartan Il mio github

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    16
    grazie linoma!!! scusa se ti faccio un altra domanda, è possibile modificare il codice che mi hai dato tu e farlo in modo che il numero di bits si determinato da un n passato come argomento dove n deve essere <16??

  8. #8
    Utente di HTML.it L'avatar di linoma
    Registrato dal
    Mar 2010
    Messaggi
    1,346
    Certo ma dovrebbe essere un tuo esercizio.
    Per gli Spartani e Sparta usa spartan Il mio github

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    16

    [c] programma per stampare tutte le occorenze di n bit usando la funzione itoa

    salve gente volevo fare un programmino per stampare tutte le occorrenze di n bit usando la funzione itoa(che data una base trasforma una stringa nel suo corrispettivo in quella base) ora io avevo buttato giu il seguente codice, ma sono per certo ci siano degli errori, ma il compilatore nn me li segnala, il programmino parte e dopo aver acquisito n e premuto invio, l esecuzione si blocca... ecco il codice, protesti suggerirmi dove sbaglio??

    codice:
    #include <stdlib.h>
    #include <stdio.h>
     
    char *  itoa ( int value, char * str, int base );
    
    int main()
    { 
        char*str;
        int base, value, i, n;
        i=2^n;
        base=2;
     scanf("%i", &n);
     
     for(value=0; value<i; value++)
            {
            itoa (value, str, base);
            printf("%d\n", str);
            }
    return 0;
    system ("pause");
    }
    grazie per i suggerimenti!!!

  10. #10
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Inizializza str, or ora contiene solo fuffa.

    Originariamente inviato da pietroA
    salve gente volevo fare un programmino per stampare tutte le occorrenze di n bit usando la funzione itoa(che data una base trasforma una stringa nel suo corrispettivo in quella base) ora io avevo buttato giu il seguente codice, ma sono per certo ci siano degli errori, ma il compilatore nn me li segnala,
    Il compilatore segnala errori sintattici, non quelli di "logica" del programma.

    Comunque a me il gcc segnala un warning:

    codice:
    test.c: In function ‘main’:
    test.c:18: warning: format ‘%d’ expects type ‘int’, but argument 2 has type ‘char *’
    Undefined symbols:
      "_itoa", referenced from:
          _main in cci2M1sk.o
    ld: symbol(s) not found
    collect2: ld returned 1 exit status
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.