Salve, come da titolo avrei un problema...
ho un file con all'interno i seguenti dati da acquisire :
messi così in modo casuale. Li ho acquisiti e memorizzati in array di stringhe, ognuna delle quali contiene una riga (ho usato questo tipo di acquisizione perché il compito richiedeva di farlo in questo modo). Adesso il mio problema è che devo creare una funzionecodice:3 + 9 4 * 2 123 - 27che "...prende in ingresso la matrice di char contenente le operazioni, ilcodice:void Esegui_Operazioni(char [][NCAR], int [], int);
vettore di interi destinato a contenere i risultati di ogni operazione e il numero di operazioni (righe
della matrice) da effettuare. Effettua le operazioni, determinando il primo operando, l'operazione
e il secondo operando (si deve effettuare una conversione da ascii a numerico) e immagazzina il risultato nel vettore dei risultati."
Ecco ciò che mi è uscito fuori :
Il problema viene fuori quando c'è da acquisire dalle stringhe un numero con più di 1 cifra (come è logico che sia da come ho scritto il codice), vorrei sapere, se è possibile, un vostro parere su come acquisire i numeri 123 e 27 nell'ultima stringa...codice:void Esegui_Operazioni(char str[][NCAR], int r[], int n) { int i=0,j=0; int op1=0,op2=0, opr=0; char *temp1,*temp2; for(i=0;i<=n-1;i++){ op1=0; op2=0; opr=0; for(i=0;i<=n-1;i++){ op1=0; op2=0; opr=0; for(j=0;j<NCAR;j++){ if(isdigit(str[i][j])!=0){ if(op1!=0 && op2==0){ op2=str[i][j]-48; }else{ if(op1==0 && op2==0){ op1=str[i][j]-48; } } } if(str[i][j]==45 || str[i][j]==42 || str[i][j]==47 || str[i][j]==43){ opr=str[i][j]; } } if(opr==43){ r[i]=op1+op2; }else{ if(opr==45){ r[i]=op1-op2; }else{ if(opr==42){ r[i]=op1*op2; }else{ if(opr==47){ r[i]=op1/op2; } } } } //printf(" opr=%d op1=%d op2=%d\n",opr,op1,op2); } } }![]()




Rispondi quotando

