Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18

Discussione: [c] numeri binari

  1. #1
    Utente di HTML.it L'avatar di spode
    Registrato dal
    Jul 2010
    Messaggi
    85

    [c] numeri binari

    codice:
    //convertire un numero binario fornito in ingresso (e di cui è fornita la lunghezza n) nel
    //decimale corrispondente
    
    #include<stdio.h>
    #include<string.h>
    #include<stdlib.h>
    
    main(){
        int i,esadec,ch;
        char* binario;
    
        printf("ATTENZIONE: INSERIRE NUMERI ALTI NON FA BENE AL PC...\2");
        printf("\nInserisci il numero che devo convertire in esadecimale: ");
        scanf("%s",&binario);
    
        printf("Il numero %d equivale all' esadecimale ");
        while(i>=strlen(binario))
        {
            ch=atoi(binario);
        if(ch%2!=0)
        {
            printf("1");
            }
            else
            {
                printf("0");
                }
                i++;
            }
            printf("\nPremi \"X\" in alto a destra per uscire!\n\n");
            main();
    } //10101=1*10**4+0*10**3
    SO: Windows 7

  2. #2
    O MA LO VUOI CAPIRE SI O NO CHE OLTRE AL CODICE DEVI SPIEGARE QUAL'É IL TUO PROBLEMA?????? Fastidio... Nel messaggio di ieri ti ci sono volute 2 pagine per farlo...

  3. #3
    Utente di HTML.it L'avatar di spode
    Registrato dal
    Jul 2010
    Messaggi
    85
    ciao, scusa. ieri mi si stava scaricando il laptop quando ho iniziato a scrivere...

    il problema è che tutto il contenuto di string.h non funziona e inoltre non ho capito perchè devo considerare "binario" come char* e non char semplicemente..
    SO: Windows 7

  4. #4
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    Il codice l'hai scritto tu o l'hai copiato? Nel secondo caso io inizierei a dubitare della fonte.
    Quel char* binario è una castronata più che un errore.
    Cambia in:
    codice:
    char binario[256];
    ...
    scanf("%s",binario);
    per cominciare.
    This code and information is provided "as is" without warranty of any kind, either expressed
    or implied, including but not limited to the implied warranties of merchantability and/or
    fitness for a particular purpose.

  5. #5
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da shodan
    Quel char* binario è una castronata più che un errore.
    Se allocava la memoria andava bene

    @spode
    Vedo comunque che insisti nel richiamare il main da se stesso
    E vedo che ancora non dichiari il main come int e che non gli fai restituire nulla...

    Ah, è inutile che mi scrivi in privato chiedendo delucidazioni, NON RISPONDO (come ho scritto nella mia firma)
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  6. #6
    Utente di HTML.it L'avatar di spode
    Registrato dal
    Jul 2010
    Messaggi
    85
    #include <string.h>

    uno per volta:
    quel codice l'ho scritto io con char binario[12], mi pare. poi code block 8 m'ha suggerito quella soluzione che non visualizza tra errori o warning.

    scrivo sempre "main()" perchè "strcmp("int main()","main()");" per me restituisce "NULL": non so se intendi... (non ci vedo differenze)
    richiamo sempre main() da sè perchè...perchè non va bene?

    p.s.: io voglio capire i motivi, quindi...spiegare, bitte sehr!
    SO: Windows 7

  7. #7
    scrivo sempre "main()" perchè "strcmp("int main()","main()");" per me restituisce "NULL": non so se intendi...
    :master: what?
    codice:
    int main()
    {
       /* codice programma */
    
       ......
    
       return 0;
    }
    Questo é quello che sta cercando di dirti Alex.

  8. #8
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da spode
    scrivo sempre "main()" perchè "strcmp("int main()","main()");" per me restituisce "NULL":
    E cosa c'entra? :master: :master:

    Originariamente inviato da spode
    richiamo sempre main() da sè perchè...perchè non va bene?
    E come fai a terminare il programma? (e non dirmi che chiudi la finestra del prompt...) Quella è una chiamata ricorsiva infinita, ogni volta viene creato un nuovo record di attivazione.. Per non uscire dovresti fare una cosa più intelligente:
    codice:
    int main() {
      do {
        CODICE
        ...
        Vuoi uscire? Sì/No
      } while (uscire == NO);
      return 0;
    }
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  9. #9
    Utente di HTML.it L'avatar di spode
    Registrato dal
    Jul 2010
    Messaggi
    85

    so che "main();" geneara un loop infinito...e a me va bene.

    che significa che per me "strcmp(int main(),main())" restituisce "NULL"?
    non ho capito la differenza tra "int main()" e "main()": io scrivo "main()" perchè code block 8 non ha niente da obiettare e il programma funziona.

    infine, sì, premo "X" in alto a destra per chiudere il prompt...
    SO: Windows 7

  10. #10
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    466
    Originariamente inviato da spode

    so che "main();" geneara un loop infinito...e a me va bene.

    che significa che per me "strcmp(int main(),main())" restituisce "NULL"?
    non ho capito la differenza tra "int main()" e "main()": io scrivo "main()" perchè code block 8 non ha niente da obiettare e il programma funziona.

    infine, sì, premo "X" in alto a destra per chiudere il prompt...
    strcmp compara 2 stringhe: come vedi passi in argomento 2 differenti, ancora devo capire da dove é uscita questa.. Sembra una barzelletta, comunque...

    Che codeblocks non abbia niente da obbiettare non vuol dire che sia scritto come "Dio comanda".
    int main si dichiara (o é buona pratica farlo) int perché quel return 0 alla fine del programma é un valore che serve al sistema operativo per sapere se si é concluso con o senza errori; lo 0 sta per "no errors".

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.