加载中…
个人资料
厦门iOS开发
厦门iOS开发
  • 博客等级:
  • 博客积分:0
  • 博客访问:792
  • 关注人气:41
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

C语言用*打印各种形状——循环的使用

(2013-05-07 19:27:30)
分类: ios开发——C语言
今天,来点好玩的,那就是用*来打印各种形状:有三角形、倒三角、矩形、菱形、六边形、圣诞树...

    //打印矩形

     //声明变量,定义行数

    int count;

    //提示用户输入行数

    printf("请您输入一个数字,代表矩形行数:");

    //从键盘获取一个整型数字赋值给count

    scanf("%d",&count);

    

    for (int i=1; i<=count; i++)

    {

        for (int j=1; j<=count; j++)

        {

            printf("*");

        }

        printf("\n");

    }


运行结果:

 

请您输入一个数字,代表矩形行数:5

*****

*****

*****

*****

*****


------------------------------------------------------



 

    //打印直角三角型

    //声明变量,定义行数

        int count;

        //提示用户输入行数

        printf("请您输入一个数字,代表三角形行数:");

       //从键盘获取一个整型数字赋值给count

        scanf("%d",&count);

    for (int i=0; i

    {

        for (int j=0; j<=i; j++)

        {

            printf("*");

        }

        printf("\n");

    }


运行结果:

请您输入一个数字,代表三角形行数:3

*

**

***


------------------------------------------------------


 

    //打印倒直角三角型

    //声明变量,定义行数

    int line;

    //提示用户输入行数

    printf("请您输入一个数字,代表倒三角形行数:");

    //从键盘获取一个整型数字赋值给line

    scanf("%d",&line);

    for (int i=0; i

    {

        for (int j=0;j

        {

            printf("*");

        }

        printf("\n");

    }

运行结果:

 

请您输入一个数字,代表倒三角形行数:3

***

**

*


------------------------------------------------------


 

    //打印等腰三角形

    //声明一个变量,定义行数

    int line;

    //提示用户输入一个数字,代表三角形的行数

    printf("请您输入一个数字,代表三角形的行数:");

    //从键盘获取一个整型数字,将其赋值给line

    scanf("%d",&line);

    for (int i=1; i<=line; i++)

    {         //循环line次,既有line

        for (int j=1; j<=line-i; j++)

            //打印每行前的空格

            printf(" ");

        }

        for (int k=1; k<=2*i-1; k++)

          //打印每行的星

            printf("*");

        }


          printf("\n");

    }


运行结果:

 

请您输入一个数字,代表三角形的行数:4

   *

  ***

 *****

*******


------------------------------------------------------



 

    //倒三角形

    for (int i=1; i<=6; i++) {      //循环6次,输出6

        for (int j=1; j<=i-1; j++) {

            printf(" ");                 //每行前面打i-1个空格

        }

        for (int k=1; k<=2*(7-i)-1; k++) {   //每行输出2*7-i-1个星

            printf("*");

        }

        printf("\n");

    }


运行结果:

 

***********

 *********

  *******

   *****

    ***

     *


-------------------------------------------------------


 

    //圣诞树

    

    for (int i=1; i<=6; i++) {            //循环六次打6

        for (int j=1; j<=6-i; j++) {      //每一行前面打几个空格

            printf(" ");

        }

        for (int k=1; k<=2*i-1; k++) {    //每一行打多少个星

            printf("*");

        }

        

        printf("\n");

    }

    for (int i=1; i<<span style="color: #272ad8">5; i++) {           //5行一个星的

        for (int j=1; j<=5; j++) {      //循环前五次都打空格,第六次跳出循环打星

            printf(" ");

        }

        printf("*\n");

    }


运行结果:

 

     *

    ***

   *****

  *******

 *********

***********

     *

     *

     *


-------------------------------------------------------

 

    //菱形

    

    for (int i=1; i<=11; i++) {               //正三角

        if(i<=6){

        for (int j=1; j<=6-i; j++) {

            printf(" ");

        }

        for (int k=1; k<=2*i-1; k++) {

            printf("*");

        }

        

        printf("\n");

    }

    

        else{                                     //倒三角

            for (int j=1; j<=i-6; j++) {

                printf(" ");                 

            }

            for (int k=1; k<=2*(12-i)-1; k++) {   

                printf("*");

            }

            printf("\n"); 

        }

        

    }


运行结果:

 

     *

    ***

   *****

  *******

 *********

***********

 *********

  *******

   *****

    ***

     *


-------------------------------------------------------


 

    //六边形

    int a;                               //a代表多少行

    printf("你要输入几行的六边形:??");

    scanf("%d",&a);

    for (int i=1; i<=a; i++) {               //循环a次,打印a

        if (i<=(a/2+1)) {                         // 打印前(a/2+1)

            for (int j=1; j<=(a/2+1)-i; j++) {    //打每行前面的空格数

                printf(" ");

            }

            for (int k=1; k<=a+2*i-2; k++) {     //打印每行的星

                printf("*");

            }

            printf("\n");

        }

        else                           //打印后几行

            for (int j=1; j<=i-(a/2+1); j++) {

                printf(" ");           //打印每行前面空格

            }

            for (int k=1; k<=3*a-2*i; k++) {

                printf("*");

            }

            printf("\n");

        }

    }

运行结果:

 

你要输入几行的六边形:??5

  *****

 *******

*********

 *******

  *****


-------------------------------------------------------


 

    //打印挖空的 六边形

    char answer;  //声明一个变量,询问是否继续操作

    do{

    

    int line;     //声明一个变量,变量为六边形的行数

    printf("\n您要输入几行的六边形:??(需要填写一个奇数)");

    scanf("%d",&line);

    for (int i=1; i<=line; i++) {      //循环line次,总共有line

        if (i<=line/2+1) {             //六边形上半部分

            for (int j=1; j<=(line/2+1)-i; j++) {

                printf(" ");        //打印前面的空格

            }

            if (i==1) {              //第一行特殊,中间没有空格

                for (int k=1; k<=line+2*i-2; k++) {

                    printf("*");

                }

            }

            else{

                printf("*");      //打印每行第一个星

                

                for (int k=1; k<=line+2*i-4; k++) {

                    printf(" ");           //打印中间的空格数

                }

                

                printf("*");      //打印每行最后一个星

            }

        }

        

        else{                         //打印后面几行

            for (int j=1; j<=i-(line/2+1); j++) {

                printf(" ");           //打印前面的空格数

            }

            if (i==line) {         //最后一行特殊

                for (int k=1; k<=3*line-2*i; k++) {

                    printf("*");

                }

            }

            else{

                printf("*");

                for (int k=1; k<=3*line-2*i-2; k++) {

                    printf(" ");

                }

                printf("*");

              

            }

        

        }

        printf("\n");

    }

        printf("您还想看其他行数的六边形吗?(Y/N");

        scanf("%c",&answer);

        scanf("%c",&answer);

   

    while(answer=='y'||answer=='Y');


运行结果:

 

您要输入几行的六边形:??(需要填写一个奇数)7

   *******

  *       *

 *         *

*           *

 *         *

  *       *

   *******

您还想看其他行数的六边形吗?(Y/Ny


您要输入几行的六边形:??(需要填写一个奇数)



0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有