ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

多种图形的打印(以*为例)

2021-10-15 23:02:02  阅读:176  来源: 互联网

标签:main 为例 int scanf 打印 tip 空格 图形 include


私以这篇文章记录下多种图形的打印(以*为例)

关键在于空格个数,字符个数,找规律,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;
 } 

结果

 

 

我就总结这些啦,若有不足请多见谅 ^-^

走前点个赞呗!

 

标签:main,为例,int,scanf,打印,tip,空格,图形,include
来源: https://www.cnblogs.com/smqhhhh/p/15413071.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有