PDA

Visualizza la versione completa : [C] Attribuire valore numerico a lettere


Peppyno
05-03-2014, 13:24
Salve a tutti, arrivo subito al dunque!
Sto lavorando su un progetto per l'esame di programmazione I, il progetto consiste nel creare un programma in C che simuli il gioco della battaglia navale.
Il mio problema consiste nell'usare le lettere (A-L) per assegnare le coordinate "colonna".
Al momento il programma l'ho tirato su sfruttando solo variabili int e quindi indicando le coordinate con soli numeri. Speravo di poter risolvere il problema attribuendo ad ogni lettera il valore numerico della rispettiva colonna.
GRAZIE MILLE per l'attenzione :D

oregon
05-03-2014, 13:42
La risposta banale ... usa il codice ASCII per trasformare la lettere in numero ...

Peppyno
05-03-2014, 15:03
La risposta banale ... usa il codice ASCII per trasformare la lettere in numero ...

Infatti ho provato gia sfruttando il codice ASCII ma non essendo molto pratico non riesco a risolvere il problema.
Usando il codice ascii per avere A=1 ho provato a scrivere:

char a='1';
printf("COLONNA: ");
scanf("%c", &n);

pero come risultato ho sempre 97 che sarebbe il valore ASCII di "a"

Se potessi indicarmi meglio la scrittura di questa operazione,te ne sarei molto grato ;)

oregon
05-03-2014, 15:19
Il valore lo hai nella variabile n. Cosa ci fai con la variabile a ?

Quindi dopo la scanf

n = n - 'a' + 1;

Peppyno
05-03-2014, 15:30
Hai perfettamente ragione...

Ora ho provato cosi:

printf("COLONNA: ");
char a='1';
scanf("%c", &n);
n = n - 'a' + 1;
printf("%d\n", n);

e il printf mi da 1!

Adesso cerco di incorporare nel miglior modo possibile questa procedura per tt le colonne

GRAZIE MILLE!

oregon
05-03-2014, 15:48
Ok ma questo

char a='1';

non ti serve ! Cancellalo ...

Loading