Visualizzazione dei risultati da 1 a 6 su 6

Discussione: [C++] esercizi...

  1. #1

    [C++] esercizi...

    "Scrivete una funzione che riceve un argomento intero e restituisce il numero che ha le cifre al contrario. Per esempio, dato il numero 7631, la funzione restituirà 1367."

    analizzando la domanda, secondo voi è possibile fare questa funzione senza utilizzare array?
    Totò, vero ma strano
    www.ateicos.com

  2. #2
    No

    devi:

    1)utilizzare un array di caratteri (o puntatore di tipo char)

    2)convertire l'intero in ascii:

    itoa(intero, ascii, base);

    dove come base userai 10 (decimale).

    3)effettare un ciclo for() di swap:

    ti servono tre variabili: begin, temporary, end.

    "begin" prende il primo elemento dell'array ascii
    "end" prende l'ultimo elemento dell'array ascii

    temporary = ascii[begin];
    ascii[begin] = ascii[end];
    ascii[end] = temporary;


    swap effettuato.

    4)convertire di nuovo l'array ascii (contenente il numero invertito)
    riportandolo da ascii ad intero:

    i = atoi(ascii);

    ...
    ...Terrible warlords, good warlords, and an english song

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 1999
    Messaggi
    88

    ....

    Questo è un caso da manuale per le funzioni ricorsive.
    Con un array risolvi tutto.
    Ciao
    VB - Java - C/C++ - VC - CORBA -JDBC

  4. #4
    Io lavorerei sul modulo e sulla divisione per 10

    codice:
    #include <stdio.h>
    
    int main()
    {
        unsigned n = 18237;
        unsigned inv = 0;
        unsigned temp = n;
    	while (temp != 0)
    	{
    	    inv = inv * 10 + temp % 10;
    	    temp /= 10;	
    	}
    	printf("prima: %d\ndopo %d", n, inv);
    
        return 0;
    }

  5. #5
    Originariamente inviato da Andrea Simonassi
    Io lavorerei sul modulo e sulla divisione per 10

    codice:
    #include <stdio.h>
    
    int main()
    {
        unsigned n = 18237;
        unsigned inv = 0;
        unsigned temp = n;
    	while (temp != 0)
    	{
    	    inv = inv * 10 + temp % 10;
    	    temp /= 10;	
    	}
    	printf("prima: %d\ndopo %d", n, inv);
    
        return 0;
    }
    grazie mille!!!


    in C++ io l'ho implementato così

    codice:
    #include <iostream.h>
    #include <stdlib.h>
    
    int main()
    {
        unsigned n;
    cout << "inserisci un numero intero: " ;
    cin >> n;
    
        unsigned inv = 0;
        unsigned temp = n;
    	while (temp != 0)
    	{
    	    inv = inv * 10 + temp % 10;
    	    temp /= 10;	
    	}
    	cout << ("prima: %d\ndopo %d", n, inv);
        
        system("PAUSE");
        return 0;
    }
    Totò, vero ma strano
    www.ateicos.com

  6. #6
    Orig. inviato da Andrea Simonassi

    Io lavorerei sul modulo e sulla divisione per 10
    codice:
    #include <stdio.h>
    
    int main()
    {
        unsigned n = 18237;
        unsigned inv = 0;
        unsigned temp = n;
    	while (temp != 0)
    	{
    	    inv = inv * 10 + temp % 10;
    	    temp /= 10;	
    	}
    	printf("prima: %d\ndopo %d", n, inv);
    
        return 0;
    }
    della serie: "la matematica non è un opinione"
    ...Terrible warlords, good warlords, and an english song

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.