Problema linguaggio C

di il
2 risposte

Problema linguaggio C

Salve a tutti

vorrei trovare un modo per stampare l'elemento della matrice il cui indice di riga e colonna sia fornito da due elementi numerici della stringa char,anche se non funziona.perchè?(es qui vorrei stampare l'elemento mat[0][1],ma mi da 0 .

#include <stdio.h>

int main(){
char buf[]="0,1,2,3";
int somma=0;	
int mat[4][4]={ {1,2,3,4},{5,6,7,8},{1,2,3,3},{1,4,3,2} };	

printf("%d",mat[buf[0]][buf[2]])	;
	
	
	
}

2 Risposte

  • Re: Problema linguaggio C

    Tanto per cominciare, buf è una stringa e quindi i suoi valori sono in ASCII non sono numeri.

    '0' equivale a 48 e non a 0

    Devi prima convertirlo.

    Quindi

    printf("%d", mat[buf[0]-'0'][buf[2]-'0']);
  • Re: Problema linguaggio C

    oregon ha scritto:


    Tanto per cominciare, buf è una stringa e quindi i suoi valori sono in ASCII non sono numeri.

    '0' equivale a 48 e non a 0

    Devi prima convertirlo.

    Quindi

    printf("%d", mat[buf[0]-'0'][buf[2]-'0']);
    gentilissimo come sempre
Devi accedere o registrarti per scrivere nel forum
2 risposte