C语言如何使用命令行进行整数四则运算

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);
}
 

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这篇博客: C语言代码示范与讲解+C语言编程规范及基础语法+编程实战中的 6.输入一个数求阶乘(for循环来实现) 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:
    //输入一个数求阶乘
    #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;
    }
    
  • 以下回答来自chatgpt:

    我能够解决这个问题。

    代码如下:

    include

    include

    include

    define MAX_SIZE 100

    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。如果输入的表达式格式不正确,程序将会进行错误提示。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^