【发布时间】:2015-01-19 05:22:13
【问题描述】:
我无法弄清楚为什么以下任何一个代码都无法按预期运行。 那里都编译成执行文件。
输出:
a.out , prints 1, expected "no value"
a.out 1, prints 2, expected 1
a.out 2, prints 2, expected 2
使用案例:
void main(int in)
{
int a = in ;
printf("In function if\n");
if ( in == 1 )
printf("1\n");
else
if ( in == 2)
printf("2\n");
else
printf("wrong value\n");
}
使用开关:
void main(int in)
{
switch( in )
{
case 1: printf("1\n"); break;
case 2: printf("2\n"); break;
default: printf("wrong value\n"); break;
}
};
我正在尝试在 C 代码中获得以下 LISP 功能:
(cond ((= in 1) 1)
((= in 2) 2)
(t nil))
感谢您的帮助。
【问题讨论】:
-
void main(int in)在 C 语言中是非法的。我不了解 Lisp,你想达到什么目的?具体来说,您希望in来自命令行参数或标准输入? -
我正在尝试让 case 语句按预期运行。
-
我似乎从一个案例和一个 if 语句中得到了错误的答案。我在我的代码中用 int 替换了 void 并且没有任何变化。我不期望返回值只是为了打印功能输入的正确行。这只是测试代码,看看我是否可以让它工作
标签: c