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;
}