Tom's Guide > Forum > Programmation > Problème en C au niveau du scanf
Mot :    Pseudo :           
 

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


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

------------------------------ Vive La DHoS
Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

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"

Code :
  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é :)


Message édité par TheLover75 le 03-11-2007 à 23:52:20
Répondre à TheLover75

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.

------------------------------ Ne pas oublier le [resolu] pour finir le sujet.
Penser à voir les tutos, ca peut aider!
Répondre à coca25

REBonjour,

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

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

------------------------------ Vive La DHoS
Répondre à luc31245

scanf("%d", &nb[i]); enlève les [b]... c'est du code du forum pour mettre en gras. :)

Répondre à TheLover75

faut revoir les bases...

Code :
  1. long nb=0

déclare une variable de type long.

Code :
  1. scanf("%d", &nb[i])

lit un int et nb doit être un tableau...


Message édité par coca25 le 04-11-2007 à 17:42:44
------------------------------ Ne pas oublier le [resolu] pour finir le sujet.
Penser à voir les tutos, ca peut aider!
Répondre à coca25

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

------------------------------ Vive La DHoS
Répondre à luc31245
------------------------------ Ne pas oublier le [resolu] pour finir le sujet.
Penser à voir les tutos, ca peut aider!
Répondre à coca25

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

Code :
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int main()
  4. {
  5.     printf("================\n" );
  6.     printf("!Crak Me !    !\n" );
  7.     printf("!By Luc31245  !\n" );
  8.     printf("================\n" );
  9.     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" );
  10.     printf("\n\n\n\n" );
  11.     //creation des variables pour les chiffres
  12.   long i = 0;
  13.   long nb[i];
  14.   long key1 = 0;
  15.   long tampon = 0;
  16.   long key2 = 52;
  17. //Creation d'un boucle
  18.       for(i = 0; i < 12; i++) // saisie de 11 chiffres
  19.     {
  20.           printf("-->Enter Key \n" );
  21.               scanf("%ld", &nb[i]);  //nb => tableau de 11 entiers non ?
  22.           tampon = nb[i];
  23.           key1 = key1 + tampon; // Somme initialisé à 0 à sa déclaration
  24.     }
  25.         if( key1 != key2)
  26.         {
  27.           //message d'érreur si la somme de la clef n'est pas égale a 52
  28.             printf("ERROR Key ! \a \n" );
  29.         }
  30.         else
  31. // Si La clef est bonne le mot de passe est révélé
  32.             printf("Tu ma cracker bien champion ^^ le mot de passe est : Stitch " );
  33.     return 0;
  34. }
  35. //fin du programme


------------------------------ Vive La DHoS
Répondre à luc31245

si tu ne lis pas bien les liens qu'on te donne, on ne peut pas grand chose...

Code :
  1. long i = 0;
  2. long nb[i];


c'est censé faire quoi?

------------------------------ Ne pas oublier le [resolu] pour finir le sujet.
Penser à voir les tutos, ca peut aider!
Répondre à coca25

Merci Sa Marche ^^

------------------------------ Vive La DHoS
Répondre à luc31245
Tom's Guide > Forum > Programmation > Problème en C au niveau du scanf
Aller à :

Il y a 2254 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens