jowhite | Bonjour bonjour,
C'est encore moi avec des exercices ^^.
Celui ci il faut juste corriger un code où il y a intentionnellement des erreurs.
Je pense avoir corrigé la plupart, mais il me reste deux warnings là ou j'ai marqué "erreurs à corriger"
Je voudrais juste votre avis.
Voilà le code de départ:
Code :
- #include <conio.h>
- #include <stdio.h>
- char codage (char lettre[], int i,int nb)
- {
- char result;
- int signe=1;
- if (i%2==0) signe=-1;
- i=(i/2)+1;
- result=lettre+signe*i*nb;
- return(result);
- }
- void main (void);
- {
- char mot[30], code[30];
- int nombre, erreur, i, chks;
- do
- {
- printf ("Bonjour, veuillez saisir le nombre correspondant à votre choix :\n 1\t pour coder un mot\n 2\tpour decoder un mot\n 3\t pour voir le nombre correspondant à un mot\n" );
- scanf ("%f", &nombre);
- erreur = 0;
- switch(nombre)
- {
- case 1 : printf("Veuillez saisir votre mot\n" );
- scanf("%s",&mot);
- chks=0;
- for (i=0; i<strlen(mot); i++)
- {
- code[i]=codage(mot[i],i,1);
- chks+=mot[i]-65;}
- code[strlen(mot)]=0;
- printf ("Le mot %i se code en %i.\nSon code de validation est : %i\n",mot,code,chks);
- case 2 : printf("Veuillez saisir votre code\n" );
- scanf("%s",&code);
- chks=0;
- for (i=0; i<strlen(code); i++);
- {
- mot[i]=codage(code[i],i,-1);
- chks+=mot[i]-65;
- }
- mot[strlen(code)]=0;
- printf ("Le code %s se decode en %s.\nSon code de validation est : %i\n",code,mot,chks);
- case 3 : printf("Veuillez saisir votre mot\n" );
- scanf("%s",mot);
- chks=0;
- for (i=0; i<strlen(mot); i++)
- {
- chks+=mot[i]-65;}
- printf ("Son code de validation est : %i\n",chks);
- default : erreur=1;
- printf("Vous avez commis une erreur lors de la saisie.\n Pressez une touche pour recommencer\n" );
- getch();
- }
- } while (erreur=1)
- printf("Le programme est maintenant fini. Appuyez sur une touche\n" );
- getch();
- }
|
Ma correction:
Code :
- #include <conio.h>
- #include <stdio.h>
- /*Erreur corrigée ci-dessous */
- #include <stdlib.h>
- char codage (char lettre[], int i,int nb)
- {
- char result;
- int signe=1;
- if (i%2==0) signe=-1;
- i=(i/2)+1;
- /*Erreur à corrigée */
- result=lettre+signe*i*nb;
- return(result);
- }
- /*Erreur corrigée ci-dessous */
- /*Erreur corrigée ci-dessous */
- int main (void)
- {
- char mot[30], code[30];
- int nombre, erreur, i, chks;
- do
- {
- printf ("Bonjour, veuillez saisir le nombre correspondant à votre choix :\n 1\t pour coder un mot\n 2\t pour decoder un mot\n 3\t pour voir le nombre correspondant à un mot\n" );
- /*Erreur corrigée ci-dessous */
- scanf ("%i", &nombre);
- /*Erreur corrigée ci-dessous */
- erreur == 0;
- switch(nombre)
- {
- case 1 : printf("Veuillez saisir votre mot\n" );
- scanf("%s",&mot);
- chks=0;
- for (i=0; i<strlen(mot); i++)
- {
- /*Erreur à corrigée */
- code[i]=codage(mot[i],i,1);
- chks+=mot[i]-65;
- }
- code[strlen(mot)]=0;
- /*Erreur corrigée ci-dessous */
- printf ("Le mot %i se code en %i.\nSon code de validation est : %i\n",mot,code,chks);break;
- case 2 : printf("Veuillez saisir votre code\n" );
- scanf("%s",&code);
- chks=0;
- /*Erreur corrigée ci-dessous */
- for (i=0; i<strlen(code); i++)
- {
- /*Erreur à corrigée */
- mot[i]=codage(code[i],i,-1);
- chks+=mot[i]-65;
- }
- mot[strlen(code)]=0;
- /*Erreur corrigée ci-dessous */
- printf ("Le code %s se decode en %s.\nSon code de validation est : %i\n",code,mot,chks);break;
- case 3 : printf("Veuillez saisir votre mot\n" );
- /*Erreur corrigée ci-dessous */
- scanf("%s",&mot);
- chks=0;
- for (i=0; i<strlen(mot); i++)
- {
- chks+=mot[i]-65;
- }
- /*Erreur corrigée ci-dessous */
- printf ("Son code de validation est : %i\n",chks);break;
- default : erreur = 1;
- printf("Vous avez commis une erreur lors de la saisie.\n Pressez une touche pour recommencer\n" );
- /*Erreur corrigée ci-dessous */
- getch();break;
- }
- /*Erreur corrigée ci-dessous */
- } while (erreur == 1);
- printf("Le programme est maintenant fini. Appuyez sur une touche\n" );
- getch();
- }
|
Merci beaucoup! |