Salve a tutti,
il problema richiede di riscrivere un numero al contrario;
La soluzione che ho adoperato è stato di scomporre il numero in cifre mediante l'algoritmo delle divisioni successive; Salvere le cifre in un vettore; Moltiplicare ogni singola cifra per il nuovo peso*
*345 = 3*10^2+4*10^1+5*10^0; Invertito, 543 sarà 5*10^2 + 4*10^1 + 3*10^0 ovvero ho invertito il peso delle cifre.
La funzione quindi ricevere come parametro in entrare il numero da invertire e darà in uscità il numero invertito.
Il codice della funzione è il seguente:
Per numeri con quantità di cifre pari funziona. Per i numeri con fire dispari il risutato è molto "random". Sapreste dirmi dov'è l'errore? o meglio, sicuramente sarà nell'assegnazione del valore della variabile "numero" all'interno dell'ultimo ciclo for, ma non riesco a capire quale sia.codice:int inversione(int numero) { int i,j; int vet[100]; for(i=0; numero > 0; i++) { vet[i] = numero % 10; numero = numero / 10; printf("%d\n",vet[i]); //debug } printf("i= %d\n",i);//debug numero = 0; for(j=0; j < i; j++) { numero = numero + vet[j] * pow(10,i-j-1); printf("%d\n",numero); //debug } return numero; }
Vi ringrazio in anticipo,
Neptune.