如何巧妙运用C语言打印按位取反运算符构建上下金字塔的精妙长尾疑问?
- 内容介绍
- 文章标签
- 相关推荐
本文共计328个文字,预计阅读时间需要2分钟。
在印刷上下金币的通常用法,应像下面这样:
在打印上下金字塔的通常语句用法应该都是像下面这种
#include <stdio.h>
int main(){
int n;
do{
for(int i=1;i<n;i++){
for(int a=0;a<n-i;a++){
printf(" ");
}
for(int j=0;j<2*i-1;j++){
printf("*");
}
printf("\n");
}
for(int g=n;g>0;g--){
for(int a=n-g;a>0;a--){
printf(" ");
}
for(int j=2*g-1;j>0;j--){
printf("*");
}
printf("\n");
}
} while(scanf("%d",&n)!=EOF);
}
但是我发现用while循环与按位取反运算符的精妙用法直接解决了金字塔中多打印空格的问题,随然解决的问题有很多替代方法但是看见这种“绝迹”用法还是会觉得眼前一亮。
本文共计328个文字,预计阅读时间需要2分钟。
在印刷上下金币的通常用法,应像下面这样:
在打印上下金字塔的通常语句用法应该都是像下面这种
#include <stdio.h>
int main(){
int n;
do{
for(int i=1;i<n;i++){
for(int a=0;a<n-i;a++){
printf(" ");
}
for(int j=0;j<2*i-1;j++){
printf("*");
}
printf("\n");
}
for(int g=n;g>0;g--){
for(int a=n-g;a>0;a--){
printf(" ");
}
for(int j=2*g-1;j>0;j--){
printf("*");
}
printf("\n");
}
} while(scanf("%d",&n)!=EOF);
}
但是我发现用while循环与按位取反运算符的精妙用法直接解决了金字塔中多打印空格的问题,随然解决的问题有很多替代方法但是看见这种“绝迹”用法还是会觉得眼前一亮。

