教小朋友写程序。设计一个:
./calc + 3 4 程序输出 3+4 = 7
支持四中运算,+,-,*,/
但输入:./calc * 5 6
Usage: hello op a b, op:[+,-,*,/]
argc:6
./calc,a.txt,calc,hello.c,5,6,
并不是5个参数,而是六个参数。 * 被扩展成a.txt, calc,hello.c。这个Shell设计,*代表当前目录下的任何文件。
要想正确调用,得写做 ./calc '*' 5 6
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int add(int a, int b) {
return a + b;
}
int sub(int a, int b) {
return a - b;
}
int mul(int a, int b) {
return a * b;
}
int divi(int a, int b) {
return a / b;
}
int main(int argc, char* argv[]) {
int a,b,c;
const char* op;
printf("Hello,world\n");
if (argc != 4) {
int i;
printf("Usage: hello op a b, op:[+,-,*,/]\n");
printf("argc:%d\n",argc);
for (i = 0; i < argc; i++) {
printf("%s\n", argv[i]);
}
return 0;
}
op = argv[1];
a = atoi(argv[2]);
b = atoi(argv[3]);
if (strcmp(op,"+") == 0) {
c = add(a,b);
printf("%d+%d=%d\n", a, b, c);
} else if (strcmp(op, "-") == 0) {
c = sub(a,b);
printf("%d-%d=%d\n", a, b, c);
} else if (strcmp(op, "x") == 0) {
c = mul(a,b);
printf("%d*%d=%d\n", a, b, c);
} else if (strcmp(op, "/") == 0) {
c = divi(a,b);
printf("%d/%d=%d\n", a, b, c);
}
return 0;
}