Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Newbie C , problemino!

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2013
    Messaggi
    8

    Newbie C , problemino!

    Questo programma dovrebbe invertire un numero intero tipo "456"->"654".
    Però se inserisco "001" lo trasforma in " 1", e se metto "100" lo trasforma in 1 lo stesso. Cosa ho sbagliato?
    codice:
    #include <stdio.h>
    
    main()
    {
        int numero,resto,numero2,ribalto,j;
        numero=0;
        resto=0;
        ribalto=0;
        
        
        printf("Inserisci il valore che vuoi ribaltare\n");
        scanf("%d",&numero);
        while(numero>0)
        {
            resto=numero%10;
            ribalto=(ribalto*10)+resto;
            numero=numero/10;
        }
        printf("%d\n",ribalto);
        
        
        system("pause");
    }
    Ultima modifica di MItaly; 09-11-2013 a 00:16 Motivo: Indentazione, tag CODE

  2. #2
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,590
    Il primo 0 fa interpretare il numero in base ottale, il secondo non viene considerato perché non ha valore, l'unica cifra significativa è 1.
    Devi utilizzare delle stringhe:
    codice:
    #include <stdio.h>
    #include <string.h>
    
    int main(void) {
        int i;
        char n[20];
        char inv[20];
        scanf("%s", n);
        for(i = 0; i < strlen(n); i++) {
            inv[strlen(n)-i-1] = n[i];
        }
        inv[strlen(n)] = '\0';
        printf("%s", inv);
        return 0;
    }
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2013
    Messaggi
    8
    Ti ringrazio , però non è la risposta che cercavo , sono alle prime armi , ed il programma di cui ho bisogno non necessita di stringhe ecc, aspettavo altre risposte.

  4. #4
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,590
    È impossibile con un solo numero considerare gli zeri iniziali. Comunque aspetta pure una risposta
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Cerca di comprendere ... se inserisci un valore numerico (senza utilizzare stringhe) e scrivi 001 oppure 00001, il valore della variabile numerica sarà 1 senza alternative.

    Solo se usi in input una stringa potrai fare quello che chiedi.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2013
    Messaggi
    8
    Ok grazie , siete stati tutti gentilissimi , vi ringrazio

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 © 2024 vBulletin Solutions, Inc. All rights reserved.