- -只改一个字符我一种办法也不会,楼主真乃大神也。
改多个字符的我倒是能想出几个来
i--改成i++就是改了2个字符;
或者i<n改成i>-n也是改了2个字符;
同理改2个字符的方法还有:
int n = -20;
for(int i = 0; i > n; i--){
printf("-");
}
第一种方法是i--改成n--
int n = 20;
for(int i = 0; i < n; n--)
{
printf("-");
}
第二种方法是i--改成i++
int n = 20;
for(int i = 0; i < n; i++)
{
printf("-");
}
第三种方法是i < n修改成-i < n
int n = 20;
for(int i = 0; -i < n; i--)
{
printf("-");
}
还有一种就是把 i < n修改成 i + n
int n = 20;
for(int i = 0; i + n; i--)
{
printf("-");
}
这个我也不敢说解释的对不对。就是说即便是条件表达式也是有值的,如果是比较运算符这种表达式如 i > n; i < n; i != n等等,这些表达式在运算后表达式为真,最后的表达式的值就为1,要是为假,表达式的值就为0。有了这个条件,因为i+n也是一个表达式,而且运算之后也有相应的值,只不过它的取值是0或是非0的数,所以,它即使没有比较运算符,但是它的表达式的值可以作为条件判断的依据。因为C语言中表达式的值不是0就为真,是0就为假。