多种图形的打印(以*为例)
2021/10/15 23:16:35
本文主要是介绍多种图形的打印(以*为例),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
私以这篇文章记录下多种图形的打印(以*为例)
关键在于空格个数,字符个数,找规律,for的嵌套调用
(一些小点,我标注在代码里或标注在代码后)
1.先从较基础的直角三角形开始
#include<stdio.h> int main(){ int n,i,j,k; scanf("%d",&n); for(i=0;i<n;i++) { for(k=0;k<=i;k++)//*依次加1 { printf("* "); }printf("\n"); }return 0; }
结果
2、倒直角三角形
#include<stdio.h> int main(){ int n,i,j,k; scanf("%d",&n); for(i=0;i<n;i++) { for(k=0;k<n-i;k++)//输出的 * 依次减一 { printf("*"); }printf("\n"); }return 0; }
结果
3、反直角三角形
#include<stdio.h> int main(){ int n,i,j,k; scanf("%d",&n); for(i=1;i<=n;i++) { for(j=1;j<=n-i;j++)//空格依次减1 { printf(" "); }for(k=0;k<i;k++)//*依次加1 { printf("*"); }printf("\n"); }return 0; }
结果
tip:第一个for控制图形共几行
第二个for控制空格规律,敲出几行
第三个for控制 * 规律,个数
4、倒反直角三角
#include<stdio.h> int main(){ int n,i,j,k; scanf("%d",&n); for(i=1;i<=n;i++) { for(j=1;j<=i;j++)//空格依次减1 { printf(" "); }for(k=0;k<=n-i;k++)//*依次加1 { printf("*"); }printf("\n"); }return 0; }
结果
5、金字塔
#include<stdio.h> int main(){ int n,i,j,k; scanf("%d",&n); for(i=0;i<n;i++) { for(j=0;j<n-i;j++)//空格依次减一 { printf(" "); }for(k=0;k<=i;k++)//* 依次加一 { printf("* "); }printf("\n"); }return 0; }
结果
tip:* 后有空格,没了空格就变成反三角形
6、边长为n的菱形
#include<stdio.h> int main(){ int n,i,j,k; scanf("%d",&n); for(i=0;i<n;i++) { for(j=0;j<n-i;j++) { printf(" "); }for(k=0;k<=i;k++) { printf("* ");//!!*后有一个空格 }printf("\n"); }for(i=1;i<=n;i++)//与上一个相反,且少打一行 { for(j=0;j<=i;j++) { printf(" "); }for(k=1;k<=n-i;k++) { printf("* "); }printf("\n"); } return 0; }
结果
7、高为n的菱形
#include<stdio.h> int main(){ int n,i,j,k; scanf("%d",&n); for(i=0;i<=n/2+1;i++) { for(j=0;j<n-i;j++) { printf(" "); }for(k=0;k<2*i-1;k++)//要输出奇数个 { printf("*"); }printf("\n"); }for(i=1;i<=n/2;i++) { for(j=0;j<=i+1;j++) { printf(" "); }for(k=1;k<=n-2*i;k++) { printf("*"); }printf("\n"); } return 0; }
结果
tip:上行比下行多一行
8、空心三角形
#include<stdio.h> int main(){ int n,i,j,k; scanf("%d",&n); for(i=0;i<n-1;i++) { for(j=0;j<n-i;j++) { printf(" "); }if(i==0) printf("*");//第一行打一个* else{ for(k=0;k<2;k++)//到最后一行前,每行两个 {printf("*"); for(int a=0;a<2*i-1;a++) { printf(" "); //中间插入奇数个空格 } } } printf("\n"); }for(int b=0;b<n;b++){//最后一行分开讨论 printf(" *"); } return 0; }
结果
tip:* 间的空格要放在输出*的后面
9、平形四边形
#include<stdio.h> int main(){ int n,i,j,k; scanf("%d",&n); for(i=0;i<n;i++) { for(j=0;j<n-i;j++)//空格依次减1 { printf(" "); }for(k=0;k<n;k++) { printf("* "); }printf("\n"); }return 0; }
结果
我就总结这些啦,若有不足请多见谅 ^-^
走前点个赞呗!
这篇关于多种图形的打印(以*为例)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-07-04TiDB 资源管控的对撞测试以及最佳实践架构
- 2024-07-03万字长文聊聊Web3的组成架构
- 2024-07-02springboot项目无法注册到nacos-icode9专业技术文章分享
- 2024-06-26结对编程到底难不难?答案在这里
- 2024-06-19《2023版Java工程师》课程升级公告
- 2024-06-15matplotlib作图不显示3D图,怎么办?
- 2024-06-1503-Loki 日志监控
- 2024-06-1504-让LLM理解知识 -Prompt
- 2024-06-05做软件测试需要懂代码吗?
- 2024-06-0514-ShardingSphere的分布式主键实现