I need some help with my simple calculator program. It seems to work fine until I use the *
symbol for multiplication. When I use the *
symbol it comes out to be 99
instead of the ASCII equivalent of 42
. The arguments it expects are an integer, operator(+
,-
, *
, /
) and another integer.
#include <stdio.h>
#include <stdlib.h>
/*
void usage() {
printf("This is a calculator program, just put in to numbers and and operator\n");
printf("Example:\n\t2 + 2\n");
}
*/
int main(int argc, char *argv[]) {
int first_number, second_number;
int symbol;
int sum;
first_number = atoi(argv[1]);
second_number = atoi(argv[3]);
symbol = (int)*argv[2];
printf("symbol varable = %d\n", symbol); // debugging for argv[2]
if (symbol == 43 ) {
sum = first_number + second_number;
printf("sum = %d\n", sum);
}
else if (symbol == 45 ) {
sum = first_number - second_number;
printf("sum = %d\n", sum);
}
else if (symbol == 42) {
sum = first_number * second_number;
printf("sum = %d\n", sum);
}
else if (symbol == 47) {
sum = first_number / second_number;
printf("sum = %d\n", sum);
}
return 0;
}