无法解决有关此代码的难题
int i,n=20; for(i=0;i<n;i--) printf("-");
我一直在喋喋不休,但一直没能解决这个问题。
从上面的代码中删除任何单个字符或运算符 ,程序应打印“ – ”20次
请帮忙!
我不认为你可以通过删除一个字符来做到这一点,但我有三个替换的解决方案(好吧,其中一个添加了一个字符,但只是因为你的程序中没有空格。如果你有空格,它会取代空间)。
解决方案1
int i,n=20; for(i=0;-i
解决方案2
int i,n=20; for(i=0;i
解决方案3
int i,n=20; for(i=0;i+n;i--) // while i + n is not zero printf("-");
我找到了关于C拼图问题的参考。 (它在评论中,所以它肯定不是原始来源。)
以下是一段C代码,其目的是打印减号20次。 但你可以注意到,它不起作用。
#include int main() { int i; int n = 20; for( i = 0; i < n; i-- ) printf("-"); return 0; }
修好上面的代码是很简单的。 要使问题变得有趣,您必须通过更改一个字符来修复上述代码。 有三种已知的解决方案。 看看你能不能得到这三个。
请注意,说明说:
...你必须通过改变一个字符来修复上面的代码。
一种解决方案是在for循环的标题n--
i--
更改为n--
。
如上所述,问题没有解决方案。 无论你或那个向你提出这个问题的人都说错了。
int i,n=20; for(i=0;i
我不知道如果替换是好的,但是改变i--到n--应该可以解决问题
这个谜题应该允许“改变一个角色”。
解决方案是将 你的朋友没有得到这个问题。 🙂
int i,n=20; for(i=0;i
编辑:您使用的是减量运算符而不是增量。 因此,你希望它继续递增直到它达到20.此时它将停止,因为那时我将不再少于20但等于。
该程序已打印-
20次 – 然后继续打印更多。 这个谜题并没有说它需要打印20次。
如果你真的必须删除某些内容,那么你可以通过删除--
运算符来获得类似的行为。
int i,n=20; for(i=0;i
其他可以删除的字符是换行符。
我可以通过添加一个字符来实现:
int i,n=20; for(i=0; - i
更改:
for(i=0;i
至:
for(i=0;i
但我不知道你怎么只能删除一个字符或运算符......你必须修改一个运算符或字符。
我做了几年已经多年了,而且我很迂腐,所以请原谅我,但是…这个节目打印“ – ”20次了吗? 然后还有一些?
如果从“printf”中删除“f”,是否继续打印“ – ”20次? 至少?
如果这是一个技巧问题,也许这就是诀窍……