-3
votes

Programme de numéro de Palindrome en C

J'essaie de créer un programme C qui détermine si un entier à cinq chiffres est un palindrome ou non. La pièce avec qui je suis en train de se battre consiste à utiliser une boucle, car je sais comment le faire avec une boucle. Cependant, je suis censé le faire sans un, et utiliser plutôt une netteté si d'autres déclarations de certaines sortes. J'ai compris comment inverser un nombre à 3 chiffres, mais pas 5, puis passer de là. Voici ce que j'ai jusqu'à présent. J'apprends juste que c'est un peu plus difficile aussi. XXX

Encore une fois, je ne peux pas le faire fonctionner pendant 5 chiffres, mais je suppose après cela en utilisant si sinon des instructions, je peux raconter inversé et le numéro d'origine avec% pour voir si c'est un palindrome.


6 commentaires

Vous devriez que la boucle soit une telle affaire et non lié votre logique de programme au nombre de chiffres dans le numéro.


Pourquoi utilisez-vous C ++ E / S dans un programme où la question est étiquetée C? C'est une inadéquation sérieuse.


Vous avez d et E qui ressemble à vous avoir démarré sur une version à 5 chiffres. Quel est le problème avec l'extension du code à trois chiffres pour gérer cinq chiffres?


Suggérez la validation d'entrée, par exemple si (! (CIN >> Num)) {CERR << "Erreur: entrée entière non valide. \ n"; retour 1; } sinon comportement non défini résultat sur une entrée inadvertance non entière.


Avez-vous envisagé de lire dans une chaîne ou de convertir le nombre en une chaîne. Vous pouvez ensuite accéder aux chiffres comme des éléments d'une matrice de charme enlever tout ce que les module de modulo de faible niveau de Pesky.


@Johannes: la solution à cordes est également très bonne et est idéal lorsqu'il est associé à des boucles. +1


4 Réponses :


1
votes
rev = 0;
rev += a; rev *= 10;
rev += b; rev *= 10;
rev += c; rev *= 10;
rev += d; rev *= 10;
rev += e;

4 commentaires

Qu'est-ce que num dans ispalindrome = ((num == inversé)? 1: 0); ?? (Astuce: 0 )


@David: :))) Vous me avez eu ici, il est censé être le numéro d'origine: D


Réponse corrigée selon le commentaire de @david. Merci.


Oui, j'ai compris, pas de gros problème :)



0
votes

C'est parce qu'il n'y a pas de changement apporté à votre variable num dans ces instructions: xxx

Vous ne mettez pas la mise à jour num du tout et d'où les valeurs des variables c , d et e sont identiques. Par conséquent, après avoir pris un module, vous devriez diviser votre variable num de 10 aussi pour déplacer un chiffre de retour. xxx

puisque vous n'imprimez que Numéro inversé dans votre code, vous n'avez pas besoin de construire à nouveau le numéro inversé. Mais si vous le faites, c'est assez trivial une fois que vous avez les chiffres. xxx

Je pense que vous pouvez vérifier si le numéro est un palindrome ou non d'ici ( ispalindrome = (inversé == num) ).


6 commentaires

Comment votre code vérifie-t-il si le numéro est Palindrome? Pour ne pas dire que votre code est principalement identique à celui de la mienne.


Premièrement, je corrigeais seulement l'erreur de la logique pour inverser le nombre qui est ce que fait l'OP dans son code. Il n'a rien écrit pour vérifier et, par conséquent, je n'en ai pas fourni. Nous ne sommes pas là pour écrire des solutions pour les demandeurs, mais pour résoudre ce qui ne va pas avec ce qu'ils ont déjà fait. Deuxièmement, votre code est si trivial que tout le monde peut venir avec elle. @Virolino


Le sujet est le suivant: Programme de numéro de palindrome en C . La première phrase est la suivante: J'essaie de créer un programme C qui détermine si un entier à cinq chiffres est un palindrome ou non. et le programme de OP est définitivement brisé et inachevé.


Comme je l'ai dit, nous ne écrivez code pour programmeurs, nous correct Qu'est-ce qui ne va pas avec ça. Si l'OP a l'intention de vérifier si c'est un palindrome, il devrait également fournir le code aussi. @Virolino


D'après ce que vous dites, je peux comprendre ce qui suit: Si une séquence de code ne fonctionne pas car il manque quelques lignes pour le faire fonctionner, nous ne fournissons pas ces lignes, car l'OP n'a pas fourni de porte-objets pour eux?


' Si une séquence de code ne fonctionne pas car il manque quelques lignes pour le faire fonctionner ' Ce n'est pas le cas ici, l'erreur consistait à construire le numéro inversé, et non à vérifier si c'est un palindrome: ) @virolino



0
votes

vous doit utiliser une boucle si vous voulez que la solution soit intelligente. Et vous devriez utiliser les pointeurs d'utilisation si vous voulez que la solution soit universelle (avec quelques modifications, vous pouvez adapter le chèque Palindrome à n'importe quel mot / phrase, car les palindromes ne sont pas Seuls les numéros) . Quelque chose comme ça: xxx


0 commentaires

0
votes
int main(){
  int n,m,d,s=0;
  scanf("%d",&n);
  m=n;
  while(m!=0){
    d=m%10;
    s=(s*10)+d;
    m=m/10;
  }
  if(r==n){
    printf("%d is palindrome",n);
  }else{
    printf ("%d is not palindrome",n);
  }
}
Just follow a simple digit extraction algorithm all the programs such as palindrome, reverse, sum of digits.... can easily be solved

2 commentaires

Suivez simplement un algorithme d'extraction de chiffres simple tous les programmes tels que Palindrome, Inverse, Somme de chiffres ... peut facilement être inscrite


Lorsque vous répondez à une question, ajoutez toutes les informations pertinentes dans la réponse et non comme des commentaires. Vous devez également expliquer comment cela fonctionne comme dumping un morceau de code ne l'aide généralement pas beaucoup.