/* Calculadora en modo comandos de repeticiones Ej.- c:> micalc 10 + 20 30 c:> micalc 102 ( Error en formato: C:>micalc 40 k 2 Error en operador: [+,-,*,/] c:>micalc 132 / 0 Error: división por cero. argc = 4 argv 0 1 2 3 calc 2002 - 100 */ #include #include // Funcion atoi // la función devuelve 1 si hay error o 0 si no lo hay. int main(int argc, char *argv[]) { int num1,num2; char operador; int hayerror; int resu; if ( argc != 4 ) { puts("Error en formato: "); return 1; } // Obtengo el operador operador = argv[2][0]; //Obtengo los números num1 = atoi(argv[1]); num2 = atoi(argv[3]); // Realizo el calculo hayerror = 0; switch (operador) { case '+':resu = num1+num2;break; case '-':resu = num1-num2;break; case '/':if ( num2 == 0 ) { hayerror= 1; } else { resu = num1 / num2; } break; case '*':resu = num1*num2;break; default: hayerror = 1; } // Controlo si ha habido error y la causa if (hayerror) { if ( (num2 == '0') && (operador == '/') ) { puts("Error: división por cero."); } else { puts(" Error en operador: [+,-,*,/]"); } } else { printf(":%d \n",resu); } return hayerror; } /* fin main */;