吾爱程序员:这里有好玩的游戏和软件
当前位置:首页C语言教程 → C语言仅更改/添加一个字符并打印 '*' 正好 20 次

C语言仅更改/添加一个字符并打印 '*' 正好 20 次

来源:网络 | 更新时间:2022-01-28 16:55:59
在下面的代码中,只更改/添加一个字符并打印 '*' 正好 20 次。 
int main()
{
int i, n = 20;
for (i = 0; i < n; i--)
printf("*"); 
getchar();
return 0;
}
解决方案: 1. 将 for 循环第三个表达式中的 i 替换为 n  
#include <stdio.h>
int main()
{
int i, n = 20;
for (i = 0; i < n; n--)
printf("*");
getchar(); 
return 0;
}
2. 在 for 循环的第二个表达式中,将“-”放在 i 之前
#include <stdio.h>
int main()
{
int i, n = 20;
for (i = 0; -i < n; i--)
printf("*"); 
getchar(); 
return 0;
}
3.将for循环的第二个表达式中的<替换为+  
#include <stdio.h>
int main()
{
int i, n = 20;
for (i = 0; i + n; i--)
printf("*");
getchar();
return 0;
}
让我们稍微扩展一下这个问题。 仅更改/添加一个字符并打印 '*' 正好 21 次。 解决方案:在 for 循环的第二个表达式中,将否定运算符放在 i 之前。 说明: 否定运算符将数字转换为它的补码。  
   No.              One's complement
 0 (00000..00)            -1 (1111..11)                         
-1 (11..1111)             0 (00..0000)                        
-2 (11..1110)             1 (00..0001)                            
-3 (11..1101)             2 (00..0010)
...............................................
-20 (11..01100)           19 (00..10011)
#include <stdio.h>
int main()
{
int i, n = 20;
for (i = 0; ~i < n; i--)
printf("*");
getchar();
return 0;
}

最新文章

热点资讯

手游排行榜

CopyRight 2020-2030吾爱程序员

鄂ICP备2021004581号-8

本站资源收集于网络,如有侵权请联系我们:35492删除0109@qq.com