【发布时间】:2011-03-21 06:09:34
【问题描述】:
如果这是一个菜鸟问题,请原谅我,但我是 C 的初学者,只学习了一段时间。我试图编写一个程序来总结两个数字(作为参数提供给应用程序)。代码是这样的:
#include <stdlib.h>
#include <stdio.h>
int main( int argc, char** argv)
{
int a = atoi(argv[0]);
int b = atoi(argv[1]);
int sum = a+b;
printf("%d", sum);
return 0;
}
但我得到了不正确的结果 - 即使对于像 5 和 10 这样的小输入,数字也很大。这里有什么问题?
【问题讨论】:
-
要调试问题,请确保打印输入和输出。首先要做的是在调用
atoi()之后添加'printf("argv[0] = %s\n", argv[0]); printf("argv[1] = %s\n", argv[1]);,然后是printf("a = %d\nb = %d\n", a, b);。如果你这样做了,你可能就不需要问这个问题了。 (不要忘记在答案后打印一个换行符!)。 -
另外,这是一道C题;
#include <cstdlib>是 C++ 标头。使用#include <stdlib.h>。