zoukankan      html  css  js  c++  java
  • C语言编程 两种方法打印一个菱形(渐入显示)

    <1>第一种方法,利用字符数组定义一个空格数组和一个符号数组,

    然后找到数组中间的元素,操作空格字符从中间开始向两边与符号数组的元素互换,

    每互换一次进行一次输出,打印上半个菱形和下半个菱形需要两个for语句的支持。

    源代码如下:

    #include<stdio.h>
    #include<stdlib.h>
    #include<windows.h>//为了使用延时语句Sleep而调用
    int main()
    {
        char suu1[] = "*****************************************";//符号语句
        char suu2[] = "                                                         ";//空格语句
        int right, left=0, mid;
        right = strlen(suu2)-1;
        mid = left + (right - left) / 2;
        for (left = mid , right = mid ; left >= 0&&right<=strlen(suu2)-1 ; left--, right++)//上半部分打印
        {
            suu2[left] = suu1[left];
            suu2[right] = suu1[right];
            printf("%s
    ", suu2);
            Sleep(600);//延时操作
        }
        for (left = 0, right = strlen(suu1)-1; left <=mid && right >=mid; left++, right--)//下半部分打印
        {
            suu2[left] = ' ';
            suu2[right] = ' ';
            printf("%s
    ", suu2);
            Sleep(600);
        }
        system("pause");
        return 0;
    }

    这种方法较为浅显易懂,但缺点是菱形的大小是通过所定义的字符数组的长度来定义的,不是特别灵活。

    <2>
    第二种方法算法上相比第一种较为复杂,但是可操控性比较高,主要是通关观察来得到所打印符号的行,列和符号个数之间的数学关系来打印。

    源代码如下:

    #include<stdio.h>
    #include<stdlib.h>
    int main()
    {
        int line = 0,m,k;
        scanf("%d", &line);//通过输入来确定菱形的大小
        int i = 0;
        for (i = 0; i < line; i++)//上半部分打印
        {
            for (m = 0; m<line - 1 - i; m++)//观察所得关系式
                printf(" ");
            for (m= 0; m <2 * i+ 1; m ++)
            {
                    printf("*");
            }
            printf("
    ");
        }
        for (i = 0; i < line-1; i++)//下半部分打印
        {
            for (m = 0; m<=i; m++)
                printf(" ");
            for (m = 0; m <2 * (line-i-1)-1; m++)//观察得到的关系式
            {
                printf("*");
            }
            printf("
    ");
        }
        system("pause");
        return 0;
    }

    运行结果实例:

    C语言编程 两种方法打印一个菱形(渐入显示)
  • 相关阅读:
    JavaScript与OC的交互
    通过修改自动布局的约束实现键盘弹出后view上推
    Foundation框架之NSArray
    Foundation框架之NSString
    Foundation框架之常用结构体
    C语言中的预处理指令
    C语言指针使用总结
    C语言中函数的使用及多文件团队开发
    Foundation框架简介
    文件的输入与输出
  • 原文地址:https://www.cnblogs.com/Kaniso-Vok/p/13756271.html
Copyright © 2011-2022 走看看