无法解决有关此代码的难题


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次? 至少?

如果这是一个技巧问题,也许这就是诀窍……