Votre question

Problème en C au niveau du scanf

Tags :
  • Mot de passe
  • Programmation
Dernière réponse : dans Programmation
3 Novembre 2007 19:37:42

Bonjour,

voila je ne trouve pas la syntaxe correspondante dans le scanf pour y insérer des caratéres numériques allant de 0 à

9

J'ai mis %c (pour un caractére ) mais je sais que ce n'est pas ça pouriez vous m'aidez SVP


  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main()
  5. {
  6. printf("================\n");
  7. printf("!Crak Me ! !\n");
  8. printf("!By Luc31245 !\n");
  9. printf("================\n");
  10. printf("Pour ce defis creez un Kenggen repondant a une suite de 11 chiffre allant de 0 a 9 ou la somme est egale a 52");
  11. printf("\n\n\n\n");
  12.  
  13. //creation des variables pour les chiffres
  14. long nb1 = 0;
  15. long nb2 = 0;
  16. long nb3 = 0;
  17. long nb4 = 0;
  18. long nb5 = 0;
  19. long nb6 = 0;
  20. long nb7 = 0;
  21. long nb8 = 0;
  22. long nb9 = 0;
  23. long nb10 = 0;
  24. long nb11 = 0;
  25. long key1 = nb1 + nb2 + nb3 + nb4 + nb5 + nb6 + nb7 + nb8 + nb9 + nb10 + nb11;
  26. long key2 = 52;
  27.  
  28. //Creation d'un boucle
  29. do
  30. {
  31.  
  32.  
  33. printf("Enter Key \n\n");
  34.  
  35. //Le programme demande d'insérer 1 chiffre Allant de 0 a 9 Soit un total de 11 chiffres pour les 11 variables
  36.  
  37. scanf("%c%c%c%c%c%c%c%c%c%c%c", &nb1, &nb2, &nb3, &nb4, &nb5, &nb6, &nb7, &nb8, &nb9, &nb10, &nb11);
  38.  
  39. //verification de la clef de 11 chiffres Dont la somme des chiffres est égale a 52
  40.  
  41. if( key1 != key2)
  42. {
  43. //message d'érreur si la somme de la clef n'est pas égale a 52
  44. printf("ERROR Key ! ");
  45. }
  46.  
  47. else
  48.  
  49. // Si La clef est bonne le mot de passe est révélé
  50. printf("Tu ma cracker bien champion ^^ le mot de passe est : Stitch ");
  51.  
  52. }
  53. while ( key1 != key2);
  54.  
  55. // Sortie de la boucle
  56.  
  57.  
  58. system("PAUSE");
  59. return 0;
  60.  
  61. }
  62. //fin du programme

Autres pages sur : probleme niveau scanf

3 Novembre 2007 23:51:52

Je n'ai pas très bien compris ce que tu veux faire... mais je vais essayer de répondre ^^

Pourquoi ne fais-tu pas une boucle "for" à la place de ton "do"

  1. for(i = 0; i < 12; i++) // saisie de 11 chiffres
  2. {
  3. printf("saisir une key\n");
  4. scanf("%d",[b]&[/b]nb[i]); //nb => tableau de 11 entiers non ?
  5. tampon = nb[i];
  6. Somme = Somme + tampon; // Somme initialisé à 0 à sa déclaration
  7. }


Normalement à la fin de ta boucle "for", la Somme doit être égale à nb1+nb2 etc...

j'ai un doute sur ce qui est en gras... (test avec et sans le "&" :D )


En espérant t'avoir aidé :) 
4 Novembre 2007 01:36:36

salut, le %c correspond à un char et non un long!
et la somme avant d'avoir rentré les chiffre n'est pas très logique :p  mais si je me rappelle bien, tu as déjà posté sur le même problème et on t'as déjà fait la remarque.
Contenus similaires
4 Novembre 2007 10:32:17

REBonjour,

cela ne marche toujours pas j'ai du faire une connerie en recopiant

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main()
  5. {
  6. printf("================\n");
  7. printf("!Crak Me ! !\n");
  8. printf("!By Luc31245 !\n");
  9. printf("================\n");
  10. printf("Pour ce defis creez un Kenggen repondant a une suite de 11 chiffre allant de 0 a 9 ou la somme est egale a 52");
  11. printf("\n\n\n\n");
  12.  
  13. //creation des variables pour les chiffres
  14. long i = 0;
  15. long nb = 0;
  16. long key1 = 0;
  17. long tampon = 0;
  18. long key2 = 52;
  19.  
  20. //Creation d'un boucle
  21.  
  22. for(i = 0; i < 12; i++) // saisie de 11 chiffres
  23. {
  24. printf("saisir une key\n" );
  25.  
  26. scanf("%d",[b] [/b]&nb[i]); //nb => tableau de 11 entiers non ?
  27. tampon = nb[i];
  28. key1 = key1 + tampon; // Somme initialisé à 0 à sa déclaration
  29.  
  30. }
  31. if( key1 != key2)
  32. {
  33. //message d'érreur si la somme de la clef n'est pas égale a 52
  34. printf("ERROR Key ! ");
  35. }
  36.  
  37. else
  38.  
  39. // Si La clef est bonne le mot de passe est révélé
  40. printf("Tu ma cracker bien champion ^^ le mot de passe est : Stitch ");
  41.  
  42. }
  43. while ( key1 != key2);
  44.  
  45. // Sortie de la boucle
  46.  
  47.  
  48. system("PAUSE");
  49. return 0;
  50.  
  51. }
  52. //fin du programme



Voila le nouveaux code

Voici les bug Affichée

[/#Ligne 26 erreur avan le '[' "token"
ligne 27 error subscribe value is neither array nor pointer
Ligne 43 syntax error before While
ligne 48 syntax error before string constant [0e00f0]

[#ff0e00]ligne 48 warning data definition is not type or storage class


Ps coca25: merci de m'avoir fait pensé au topic il faut que je le supprime ^^
4 Novembre 2007 17:10:43

scanf("%d", &nb); enlève les ... c'est du code du forum pour mettre en gras. :) 
4 Novembre 2007 17:42:24

faut revoir les bases...
  1. long nb=0
déclare une variable de type long.
  1. scanf("%d", &nb[i])
lit un int et nb doit être un tableau...
4 Novembre 2007 18:50:19

Coca comment on fait un tableau je ne m'en rapelle plus j'ai mis int nb = 0;

et j'ai supprimer le while qui ne servait à rien
4 Novembre 2007 19:02:58

Merci beaucoup pour le site, le programme arrive a ce compiler mais l'effet rechercher ne marche pas il devré répondre a cette clef normallement 2689-1193-517

voila le code
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main()
  5. {
  6. printf("================\n");
  7. printf("!Crak Me ! !\n");
  8. printf("!By Luc31245 !\n");
  9. printf("================\n");
  10. printf("Pour ce defis creez un Keyggen repondant a une suite de 11 chiffre allant de 0 a 9 ou la somme est egale a 52");
  11. printf("\n\n\n\n");
  12.  
  13. //creation des variables pour les chiffres
  14. long i = 0;
  15. long nb[i];
  16. long key1 = 0;
  17. long tampon = 0;
  18. long key2 = 52;
  19.  
  20. //Creation d'un boucle
  21.  
  22. for(i = 0; i < 12; i++) // saisie de 11 chiffres
  23. {
  24. printf("-->Enter Key \n" );
  25.  
  26. scanf("%ld", &nb[i]); //nb => tableau de 11 entiers non ?
  27. tampon = nb[i];
  28. key1 = key1 + tampon; // Somme initialisé à 0 à sa déclaration
  29.  
  30. }
  31. if( key1 != key2)
  32. {
  33. //message d'érreur si la somme de la clef n'est pas égale a 52
  34. printf("ERROR Key ! \a \n");
  35. }
  36.  
  37. else
  38.  
  39. // Si La clef est bonne le mot de passe est révélé
  40. printf("Tu ma cracker bien champion ^^ le mot de passe est : Stitch ");
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49. return 0;
  50.  
  51. }
  52. //fin du programme

4 Novembre 2007 23:23:03

si tu ne lis pas bien les liens qu'on te donne, on ne peut pas grand chose...
  1. long i = 0;
  2. long nb[i];

c'est censé faire quoi?
5 Novembre 2007 12:23:23

Merci Sa Marche ^^
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS