C语言实现循环打印星号图形再镂空

目录
  • C语言 循环打印星号图形再镂空
    • 镂空的原理
  • C语言 打印菱形星号“*”图案
    • 题目

C语言 循环打印星号图形再镂空

镂空的原理

判断什么时候打印星号,什么时候打印空格

如果把这个图形镂空 成下面这个图形

  int i,j;
    //外层控制行数和换行
    for(i=0;i<5;i++)
    {
        //内存循环控制列数和星数量
        for(j=0;j<=3-i;j++)
        {
            printf(" ");
        }
        for(j=0;j<=i*2;j++)
        {
            if(i==0 || i==4 || j ==0 || j == 2*i)    //第一行和最后一行不要镂空,然后就是中间的两边,分别是j=0和j取最大值的时候
                printf("*");
            else
                printf(" ");0
        }

        printf("\n");
    }
    return 0;

第二种:

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int i,j;
    for(i=0;i<9;i++)
    {
        for(j=0;j<9;j++)
        {
            if(i == 0 || i == 8 || j == 0 || j == 8)
            {
                printf("*");
            }
            else
            printf(" ");
        }
        printf("\n");
    }
 

第三种效果图:

int main()
{
    //上半部分
    int i,j;
    for(i=0;i<3;i++)
    {
        for(j=0;j<2-i;j++)
        {
            printf(" ");
        }
        for(j=0;j<=2+2*i;j++)
        {
            if(i == 0 || j == 0 || j == 2+2*i)
                printf("*");
            else
                printf(" ");
        }
        printf("\n");
    }

    //中间部分
    for(i=0;i<3;i++)
    {
        for(j=0;j<7;j++)
        {
            if(j == 0 ||j == 6)
                printf("*");
            else
                printf(" ");
        }
        printf("\n");
    }

    //下半部分
    for(i=0;i<3;i++)
    {
        for(j=0;j<i;j++)
        {
            printf(" ");
        }
        for(j=0;j<=6-2*i;j++)
        {
            if(i == 2 || j == 0 || j ==6-2*i )
                printf("*");
            else
                printf(" ");
        }
        printf("\n");
    }

    return 0;
}

第四种:

int main()
{
    int i,j;

    //上半部分
    for(i=0;i<3;i++)
    {
        for(j=0;j<2-i;j++)
        {
            printf(" ");
        }
        for(j=0;j<=2*i;j++)
        {
            printf("*");
        }
        printf("\n");
    }

    //下半部分
    for(i=0;i<7;i++)
    {
        for(j=0;j<5;j++)
        {
            if(j == 2)
                printf("*");
            else
                printf(" ");
        }

        printf("\n");
    }

    return 0;

C语言 打印菱形星号“*”图案

题目

打印菱形星号“*”图案。输入一个正整数n(n为奇数),打印一个高度为n的“*”菱形图案。试编写相应程序。

程序简易流程图如下:

#include<stdio.h>                           /*打印菱形图案*/
int main (void)
{
	int n,j,i;                              /*i为行数,j为每行中的项数*/
	printf("(n为奇数)输入图案高度n:\n");
	scanf("%d",&n);
	if (n<=0||n%2==0)                        /*判断n输入正误*/
		printf("输入错误!");
	else
	{
		for(i=1;i<=n/2+1;i++)               /*打印上三角,(包括中间行)*/
		{
			for(j=1;j<=n/2+i;j++)
			{
				if(j>=n/2-i+2)
					printf(" *");
				else
					printf("  ");
			}
			printf("\n");
		}
		for(i=n/2;i>=1;i--)               /*打印下三角,(不包括中间行)*/
		{                             /*将i改为倒序,这样就不必再次考虑每行中项的打印,下个for循环可以直接复制上三角部分*/
			for(j=1;j<=n/2+i;j++)         /*这个for循环与上三角一致 */
				if(j>=n/2-i+2)
					printf(" *");
				else
					printf("  ");
			printf("\n");
		}
	}
	return 0;
}

运行结果:

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • C语言实现循环打印星号图形再镂空

    目录 C语言 循环打印星号图形再镂空 镂空的原理 C语言 打印菱形星号“*”图案 题目 C语言 循环打印星号图形再镂空 镂空的原理 判断什么时候打印星号,什么时候打印空格 如果把这个图形镂空 成下面这个图形 int i,j; //外层控制行数和换行 for(i=0;i<5;i++) { //内存循环控制列数和星数量 for(j=0;j<=3-i;j++) { printf(" "); } for(j=0;j<=i*2;j++) { if(i==0 || i==4 ||

  • Python利用for循环打印星号三角形的案例

    简单的for循环打印三角形 1,for循环方法实现星星三角 代码: for i in range(0,5): for j in range(i+1): if i == 4: print("* ",end="") continue if j == 0 or j == i: print("* ",end="") else: print(" ",end="") print() 2.实心三角:

  • C语言实现打印星号图案

    目录 C语言 打印星号图案 C语言 循环打印星号图形* 用两层循环 C语言 打印星号图案 打印一个上半部分为等腰三角形,下半部分为倒等腰三角形星号图案:思想为创建一层大的循环表示行数,然后里面一层循环表示空格的数目,一层表示星号的数目,假设有n行,i表示第i行,空格数为(n-i),星号数为(2*i-1);下半部分从第n行开始,逐渐减少,其他同上半部分. 如有写的不对,望指教. 代码如下: #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #

  • 利用C语言如何实现一些简单图形的打印

    1#define_CRT_SECURE_NO_WARNINGS 1 因为笔者采用的是VS的编译环境所以有了上面的这一句话 我们都知道平面图形是由一条条线段构成,所以我们就先实现线段的打印 //打印自定义长度的线段 #include<stdio.h> int main() { int i = 0; int n; while (~scanf("%d", &n)) { for (i = 0; i < n; i++) printf("* "); p

  • Java编程之双重循环打印图形

    双重循环打印顶点在左上的直角三角形: public static void main(String[] args) { // TODO Auto-generated method stub int num=0; System.out.println("请输入直角三角形的行数:"); Scanner input=new Scanner(System.in); num=input.nextInt(); for(int i=1;i<=num;i++){ for(int k=1;k<

  • Python 使用双重循环打印图形菱形操作

    如下所示: a = int(input("请输入菱形行数:")) m = a #空格 d = a #倒三角 for i in range(1, a + 1): # 先打印正三角 print(" " * (m - 1), "*" * (2 * i - 1)) #2个*参数: 第一个是:空格 第二个是: *根据规律组成 m -= 1 if i == a: # 临界点,开始打印倒三角 for y in range(1, a): print("

  • 详解C语言 三大循环 四大跳转 和判断语句

    三大循环for while 和 do{ }while; 四大跳转 : 无条件跳转语句 go to; 跳出循环语句 break; 继续跳出循环语句 continue; 返回值语句 return 判断语句 if,if else,if else if else if...else ifelse 组合 if(0 == x) if(0 == y) error(): else{ //program code } else到底与那个if配对 C语言有这样的规定: else 始终与同一括号内最近的未匹配的if语

  • C语言分支循环其嵌套语句的使用

    目录 switch 嵌套 1.语法结构: 2.switch-case 嵌套语句程序示例 循环嵌套 1.while 循环嵌套 2.do-while 嵌套循环 3.for 循环嵌套 总结 Hello,everyone! forever之前给大家介绍了C语言的分支结构和循环结构,在分支中介绍了分支语句嵌套,但当时没有介绍 switch 嵌套,所以这次主要介绍 switch 嵌套和循环嵌套. 首先来说说什么是嵌套吧!一个语句内包含另一个完整的语句结构称为语句嵌套.内嵌套的语句结构内还可以继续嵌套其他语句

  • Go语言中循环语句使用的示例详解

    目录 一.概述 1. 循环控制语句 2. 无限循环 二.Go 语言 for 循环 1. 语法 2. for语句执行过程 3. 示例 4. For-each range 循环 三.循环嵌套 1. 语法 2. 示例 四.break 语句 1. 语法 2. 示例 五. continue 语句 1. 语法 2. 示例 六.goto 语句 1. 语法 2. 示例 一.概述 在不少实际问题中有许多具有规律性的重复操作,因此在程序中就需要重复执行某些语句. 循环程序的流程图: Go 语言提供了以下几种类型循环

  • C语言for循环嵌套for循环在实践题目中应用详解

    目录 做题前先学招 第一题 第二题 第三题 第四题 第五题 第六题 做题前先学招 for循环嵌套个for循环,就是以下类型 for(...)——>" for(1) " { for(...)——>" for(2) " { } } #include <stdio.h> int main() { int i=0; int j=0; for(i=0;i<3;i++) { for(j=0;j<3;j++) { printf("ha

随机推荐