main函数的参数C语言

我想要达到的结果

编译一个能接收参数的exe文件。输入参数p m n则打印出m+n的结果,输入参数m m n则打出m-n的结果,输入其余参数则打印“Invalid parameter.”

#include <stdio.h>
#pragma warning(disable:4996)

int main()
{
    int m = 0, n = 0;
    char c = 0;
    scanf("%c%d%d", &c, &m, &n);
    if (c == 'p')
    {
        printf("%d", m + n);
    }
    else if (c == 'm')
    {
        printf("%d", m - n);
    }
    else printf("Invalid parameter.");
}

就是命令行参数方式,cmd窗口下直接执行
你的意思第一个参数是字符p或字符m?后面两个参数是两个值?允许整数还是浮点数呢?
输入m m n的情况,前两个m有啥关系?


#include <stdio.h>

int main()
{
    int i, j, k;
    scanf("%d%d%d", &i, &j, &k);
    if (i != j && i != k && j != k)
        printf("%d\n", j + k);
    else if (i == j && i != k)
        printf("%d\n", i - k);
    else
        printf("Invalid parameter.");
    return 0;
}

main在Java中可以带参数,c不行


#include <stdio.h>
#include <stdlib.h>
 
int main(int argc, char** argv)
{
    if(argc < 4) {
        printf("Invalid parameter.\n");
        return 1;
    }
    const char op = argv[1][0];
    int m = atoi(argv[2]), n = atoi(argv[3]);
 
    if (op == 'p')
    {
        printf("%d\n", m + n);
    }
    else if (op == 'm')
    {
        printf("%d\n", m - n);
    }
    else printf("Invalid parameter.\n");
}

供参考:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char* argv[])
{
    if (argc < 4) {
        printf("Invalid parameter.");
        return -1;
    }
    if (strcmp(argv[1], "p") == 0) {
        printf("%d", atoi(argv[2]) + atoi(argv[3]));
    }
    else if (strcmp(argv[1], "m") == 0) {
        printf("%d", atoi(argv[2]) - atoi(argv[3]));
    }
    else
        printf("Invalid parameter.");
    return 0;
}