编译一个能接收参数的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;
}