Sono un pò di giorni che provo a risolvere questo problema senza successo.
Preciso subito che sono un autodidatta!!!
Il testo del problema è questo:
Scrivere un programma che traduca un numero telefonico alfabetico nella sua forma numerica.
Esempio:
Inserisci numero in lettere: CALLATT
numero convertito: 2255288
Io ho iniziato con un programma con solo tre lettere alfabetiche, ma vengono solo le ultime 2 lettere convertite correttamente, al contrario la prima lettera viene restituita al valore ASCII corrispondente.
Non riesco davvero a capire dove sbaglio.
questo è il mio programma(grazie in anticipo per l'aiuto)
- Codice:
#include <stdio.h>
int main(void)
{
char a,b,c;
int n=2,l=3,m=4;
printf("inserisci il testo: ");
a=getchar();
b=getchar();
c=getchar();
putchar(a);
putchar(b);
putchar(c);
while(getchar()!='\n')
switch(a){
case'a': case'b': case'c':
a=n;break;
case'd': case'e': case'f':
a=l;break;
case'i': case'g': case'h':
a=m;break;}
switch(b){
case'a': case'b': case'c':
b=n;break;
case'd': case'e': case'f':
b=l;break;
case'g': case'h': case'i':
b=m;break;}
switch(c){
case'a': case'b': case'c':
c=n;break;
case'd': case'e': case'f':
c=l;break;
case'g': case'h': case'i':
c=m;break;}
printf("%d%d%d", a,b,c);
return 0;
}