Game: Help 小明. 小明初学 C 语言,写了个程序,想打印 99 个 '#'. 程序如下:
int i, n=99; int main() { for(i = 0; i < n; i--) { printf("#"); } return 0; }
但是这个程序是错的.
Question 1: 请大家帮他改正, 但只允许 1) 删除一个字符 or 2) 增加一个字符 or 3) 改变一个字符
Question 2: 同样的限制条件, 使得只打印一个 '#'
Qeustion 3: 同样的限制条件, 打印 100 个 '#'
------------ DONT SPOIL THE FUN --------------- ---- 华丽的分界线, 请大家确保对上述每个问题思考 10 分钟再往下看 ----
下面要帖答案了,要自己思考下的先别往下看了.
Question 1 的几个解(99个#):
//解1: int i, n=99; int main() { for(i = 0; i + n; i--) { printf("#"); } return 0; } //解2: int i, n=99; int main() { for(i=0; -i < n; i--) { printf("#"); } return 0; } //解3: int i, n=99; int main() { for(i = 0; i < n; n--) { printf("#"); } return 0; }
Question 2 的几个解(1个#):
//解1: int *i, n=99; int main() { for(i = 0; i < n; i--) { printf("#"); } return 0; } //解2: int i, *n=99; int main() { for(i = 0; i < n; i--) { printf("#"); } return 0; } //解3: int i, n=99; int main() { for(i = 0; i < n; i--); { printf("#"); } return 0; } //此解运行较慢
Question 3 的几个解(100个#):
int i, n=99; int main() { for(i = 0; ~i < n; i--) { printf("#"); } return 0; }