Salut, je me suis remis à la programmation en C depuis peu et j'ai ressortis un ptit programme que j'avais codé à mes heures perdues, seulement, en le recompilant et en le testant il ne marche pas, il m'affiche les ?????? de mon else dans la boucle for.....
Pourriez-vous m'aider à le faire fonctionner et peut-être m'indiquer comment l'améliorer un petit peu.........
Voici le codeur morse :
Et voici le décodeur morse que je n'arrive pas à compiler avec code::blocks, ça marchais avec devc++ :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53 #include <stdio.h> #include <string.h> #define NL 37 main() { struct code { char lettre ; char * morse ; } ; struct code table[NL] = { 'A', ".-", 'B', "-...", 'C', "-.-.", 'D', "-..", 'E', ".", 'F', "..-.", 'G', "--.", 'H', "....", 'I', "..", 'J', ".---", 'K', "-.-", 'L', ".-..", 'M', "--", 'N', "-.", 'O', "---", 'P', ".--.", 'Q', "--.-", 'R', ".-.", 'S', "...", 'T', "-", 'U', "..-", 'V', "...-", 'W', ".--", 'X', "-..-", 'Y', "-.--", 'Z', "--..", '.', ".-.-.-", '0', "-----", '1', ".----", '2', "..---", '3', "...--", '4', "....-", '5', ".....", '6', "-....", '7', "--...", '8', "---..", '9', "----.", } ; char ligne[128] ; int i, j ; debut: printf ("\n\n LES CARACTERES SONT A ECRIRE EN MAJUSCULE \n\n") ; printf (" 128 caracteres maximum \n") ; printf (" Introduisez une phrase : \n") ; gets (ligne) ; printf ("\n\n Voici la traduction de votre message : \n\n") ; for (i=0 ; i<strlen(ligne) ; i++) { j=0 ; while (ligne[i] != table[j].lettre && j++<NL-1) ; if (j<NL) printf ("%7s", table[j].morse) ; else printf (" ??????") ; if ( ! ((i+1)%10) ) printf ("\n\n") ; } goto debut ; }
Bon évidemment, un bon codeur doit savoir coder sans son code.....mais, toutefois si un coup de pouce est possible...heu...bin, je dis pas non....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54 #include <stdio.h> #include <string.h> #define NL 37 #define LG 127 main() { struct code { char lettre ; char * morse ; } ; struct code table[NL] = { 'A', ".-", 'B', "-...", 'C', "-.-.", 'D', "-..", 'E', ".", 'F', "..-.", 'G', "--.", 'H', "....", 'I', "..", 'J', ".---", 'K', "-.-", 'L', ".-..", 'M', "--", 'N', "-.", 'O', "---", 'P', ".--.", 'Q', "--.-", 'R', ".-.", 'S', "...", 'T', "-", 'U', "..-", 'V', "...-", 'W', ".--", 'X', "-..-", 'Y', "-.--", 'Z', "--..", '.', ".-.-.-", '0', "-----", '1', ".----", '2', "..---", '3', "...--", '4', "....-", '5', ".....", '6', "-....", '7', "--...", '8', "---..", '9', "----.", } ; char ligne[LG+1] ; char code[7] ; int i, j ; debut: printf ("\n\n Introduiser un code morse a traduire : \n") ; gets (ligne) ; printf ("\n\n Le code morse traduit alphabetiquement veut dire : \n") ; i=0 ; while (i<strlen(ligne)) { while (ligne[i] == ' ') i++ ; if ( i<strlen(ligne) ) { sscanf (&ligne[i], "%6s", code) ; i += strlen(code) ; j=0 ; while ( stricmp (code, table[j].morse) && j++<NL-1) ; if (j<NL) printf ("%2c", table[j].lettre) ; else printf (" ?") ; } } goto debut ; }
Partager