【发布时间】:2023-02-03 19:52:51
【问题描述】:
我想编写一个从命令行接受三个参数的程序。两个参数是 数字,而一个参数是操作之一。主要功能 应该读取这些参数,如果参数的数量不是 3,那么程序应该 返回值 -9999 并退出。
如果参数个数是 3,那么程序应该执行 两个数之间的运算,并返回运算结果。
我已经写了几行,但我知道我的代码还没有完成。 谁能帮我写出正确的?
#include <stdio.h>
void main(int argc, char * argv[])
{
int a, b, result;
char ch;
printf("enter two numbers and the operation to apply on: \n");
a = atoi(argv[1]);
b = atoi(argv[2]);
ch = *argv[3];
printf("%d %d %c", a, b, ch);
switch (ch)
{
case '+':
result = a + b;
break;
case '-':
result = a - b;
break;
case 'x':
result = a * b;
break;
case '/':
result = a / b;
break;
}
printf("\nThe result of the operation is %d", result);
printf("\n");
}
【问题讨论】:
-
能否请你更具体一点,为什么代码不完整?
-
首先 - 将
main()函数返回类型更改为int并包括stdlib.h(atoi()需要)。您还需要围绕参数计数和参数值进行一些错误处理。 -
“如果参数数量不是 3”这意味着您需要检查
argc以查看传递了多少个参数。请注意,它至少为 1,因为可执行文件的名称始终在argv[0]中传递。
标签: c