C语言如何编写一个程序,用命令行进行整数运算,例如输入calc4+6,输出10
新建一个c语言文件,叫做calc.c
编写代码
#include <stdio.h>
int main(int argc, char ** args)
{
printf("calc");
int a, b;
float c;
char op;
sscanf(args[1], "%d%c%d", &a, &op, &b);
if (op == '+') c = a + b;
if (op == '-') c = a - b;
if (op == '*') c = a * b;
if (op == '/') c = a / (float)b;
printf("%f", c);
}
不知道你这个问题是否已经解决, 如果还没有解决的话://输入一个数求阶乘
#include <stdio.h>
int main()
{
int i, n, x;
printf("Enter n:");
scanf_s("%d", &n);
x = 1;
for (i = 1; i <= n; i++)
{
x = x * i;
}
printf("阶乘为%d", x);
return 0;
}
我能够解决这个问题。
代码如下:
int main(int argc, char *argv[]) { if (argc != 2) { // 参数数量不对 printf("请正确输入计算表达式!\n"); return 1; }
char expression[MAX_SIZE]; // 存储输入的表达式
strcpy(expression, argv[1]); // 将命令行参数赋值给expression
int len = strlen(expression); // 获取表达式长度
if (len < 3) { // 表达式非法,不足三个字符
printf("表达式非法!\n");
return 1;
}
int num1 = 0, num2 = 0, result = 0; // 存储两个操作数和结果
char oper = expression[len-2]; // 获取操作符
// 分离操作数
for (int i = 0; i < len-2; i++) {
char c = expression[i];
if (c < '0' || c > '9') { // 非数字,表达式非法
printf("表达式非法!\n");
return 1;
}
if (i == len-3) { // 最后一个数字,解析出第二个操作数
num2 = c - '0';
} else {
num1 = num1*10 + (c - '0'); // 解析出第一个操作数
}
}
// 根据操作符进行运算
switch (oper) {
case '+':
result = num1 + num2;
break;
case '-':
result = num1 - num2;
break;
case '*':
result = num1 * num2;
break;
case '/':
if (num2 == 0) { // 除数为0,非法表达式
printf("表达式非法!\n");
return 1;
}
result = num1 / num2;
break;
default: // 操作符非法,非法表达式
printf("表达式非法!\n");
return 1;
}
// 输出结果
printf("%d\n", result);
return 0;
}
这个代码通过获取命令行参数来进行整数四则运算。
首先,通过判断参数数量是否为2来判断输入的表达式是否正确,如果不正确则退出程序。
然后,通过字符串的操作来获取表达式中的操作数和操作符,分别存储在num1、num2和oper变量中。
接着,根据操作符进行相应的运算,存储结果在result变量中。
最后,输出结果并退出程序。
在使用时,只需在命令行中输入类似于“./a.out calc4+6”的命令即可进行运算,输出结果为10。如果输入的表达式格式不正确,程序将会进行错误提示。