inverser la position des chiffres entiers?
j'ai pour inverser la position de l'entier tel que cette
entrée = 12345
de sortie = 54321
j'ai fait cela, mais il donne la mauvaise sortie.e.g 5432
#include <iostream>
using namespace std;
int main(){
int num,i=10;
cin>>num;
do{
cout<< (num%i)/ (i/10);
i *=10;
}while(num/i!=0);
return 0;
}
- Vous avez à traiter avec les valeurs comme des entiers ou pouvez-vous traiter comme des chaînes ou des tableaux de caractères?
- entiers, je ne peux pas utiliser autre chose que de boucles ou de la sélection...
- De nombreux doublons sur la DONC déjà (semble être des devoirs à faire à la question qui surgit à ce moment de l'année) - voir par exemple [c programme pour le revers, les chiffres ](stackoverflow.com/questions/2351251/...)
Vous devez vous connecter pour publier un commentaire.
Votre boucle s'arrête trop tôt. Changement
à
pour obtenir un plus itération, et votre code fonctionne.
Voici une solution
Si vous l'essayer une fois, comme un exemple, vous verrez que votre erreur.
Entrée: 12
première boucle:
out: 12%10 = 2 /1 = 2
i = 100
test: 12/100 = 0 (un nombre entier)
abandonne trop tôt.
Pourrait être une des solutions de test
Comme l'une des nombreuses solutions.
Bien, rappelez-vous que la division entière arrondit toujours vers le bas (ou vers zéro?) dans C. Donc, ce serait
num /i
être sinum < 10
eti = 10
?remplacer votre instruction while
avec
Si je devais le faire, je serais (probablement) commencez par créer la nouvelle valeur comme une
int
, et ensuite, imprimez cette valeur. Je pense que cela devrait simplifier un peu le code. Comme pseudo, ça ressemble à quelque chose comme:L'autre possibilité serait de convertir une chaîne en premier, puis imprimez la chaîne dans le sens inverse:
C'est un codage de l'assignation pour mes cours de collège. Cette cession intervient après une discussion sur la Surcharge des opérateurs en C++. Bien qu'il n'est pas clair si la Surcharge doit être utilisé pour l'affectation ou non.
Le code suivant fonctionne pour un nombre de deux chiffres seulement.
}
Cela permettra d'inverser les bits dans tout entier signé ou non signé (short, byte, int, long ...). Vous pouvez fournir un paramètre supplémentaire nBits pour encadrer les bits en marche arrière.
je. e.
7 en 8 bits = 00000111 -> 11100000
7 en 4 bits = 0111 -> 1110
public class TestDS {
}
Je l'ai fait simplement, mais c'est applicable jusqu'à 5 chiffres, mais j'espère que ça aide