prova con questa...
codice:
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main (int argc, char **argv) {
int num1, num2, num3;
float ris;
char *op;
op =(char *)malloc(sizeof(char));
if (argc = 3) {
num1 = atoi(argv[1]);
num2 = atoi(argv[3]);
strcpy(op, argv[2]);
printf("\n\n L'operazione che hai richiesto e %d %s %d \n\n\n", num1, op, num2);
if (strcmp(op,"+") == 0){
ris = num1 + num2;
}
if (strcmp(op,"-") == 0){
ris = num1 - num2;
}
if (strcmp(op,"*") == 0){
ris = num1 * num2;
}
if ((strcmp(op,"/") == 0) && num2!=0){
ris = num1 / num2;
}
if (strcmp(op,"%") == 0){
ris = num1 % num2;
}
}
printf("Il risultato dell'operazione e %.2f\n\n", ris);
return(0);
}
il problema che se assegni direttamente argv[2][0] a un tipo di dato int o char e fai il cast ci possono essere problemi di compatibilità...
allora prova con il ricopiarti tutta la stringa "op" e confrontarla sempre con le strighe "+","-"...etc...
naturalmente devi fare il malloc della stringa, anche se è di un solo carattere, altrimenti ti potrebbe dare segmentation fault...
cosi funzica...
ciao ciao