这是我正在使用的代码,它测试'b'的输入,如果还有其他输入则输出'Y'。
请不要问为什么我选择使用'Y'作为假值。
> , <
+++++ +++++
[
> ----- ----
< -
]
> ----- --- <
[
>
+++++ +++++
[
> +++++ +++
< -
]
> +++++ ++++ <
. <
]
想要相当于
char c;
c = getchar();
if (c == 'b')
putchar('Y');
我无法输出任何内容(将其指向文件并将其显示为灰色,以及屏幕上没有任何内容)无论我将哪些内容输入程序
答案 0 :(得分:8)
差不多两年后你可能不再需要这个了,但这是我的版本&#34; if - else&#34;语句:
+++++ +++++
+++++ +++++
+++++ +++++
+++ (this is the value you want to check, in this case it's the "!")
> , < (then you take input an char to compare)
[ - > - < ] (after that you have to check if their ascii values are the same)
>> (and initialize the answer on "true")
+++++ +++++
+++++ +++++
+++++ +++++
+++++
< [ - > ] > . (if "false", this loop will be executed and the answer won't be printed)
希望它今天对某人有用。 :d
答案 1 :(得分:7)
您的问题是,当您到达第二个循环时,当前单元格中的值始终为零,因此您的第二个循环永远不会运行。你需要在右边的另一个单元格中获得对输入的修改结果,然后只有当值 为零时才需要工作(不像循环,它只会起作用)如果值不为零)。
要制定条件,我建议从某个网站抓取某些其他人已经出现的代码(an example I found)。
无论如何,这是我提出的解决问题的代码:
,
7 * 7 * 7 = 98 = 'b'
> +++++ ++
[ > +++++ ++
[
<< --
>> -
]
< -
]
<
expect everything to be zero here
[ >+ >+ <<- ]
> [ <+ >- ] +
> [ <- >[-] ]
< [ <
>> [-]
(11 * 8) plus 1 = 89 = 'Y'
+++++ +++++ +
[ << +++++ +++ >> - ]
<< + .
> -
]