空心菱形的一种算法

来源:互联网 发布:vr淘宝 编辑:程序博客网 时间:2024/04/29 13:01
/*根据用户输入的字符和宽度画出一个空心的菱形*/
#include 
<stdio.h>
#include 
<stdlib.h>

void main()
{
    
int i,j,k,num;
    
char ch;
    system(
"cls");//清屏
    printf("Please enter a number: ");
    scanf(
"%d",&num);//提示用户输入宽度
    printf("Please enter a char: ");
    fflush(stdin);
//清除缓冲区
    scanf("%c",&ch);//提示用户输入要打印的字符
    for(i=1;i<=num;i++)//循环打印上半部分
    {
        
for(j=num-i;j>=0;j--)
        
{
            putchar(
' ');
        }

        
for(j=1;j<=2*i-1;j++)//根据判断将第1行和最后1行采用挖空法打印出菱形的上半部分
        {
            
if(j==1||j==2*i-1)
            
{
                printf(
"%c",ch);
            }

            
else
            
{
                putchar(
' ');
            }

        }

        putchar(
' ');
    }

    
for(i=num-1;i>=1;i--)//打印出菱形的下半部分
    {
        
for(j=0;j<=num-i;j++)
        
{
            putchar(
' ');
        }

        
for(j=1;j<=2*i-1;j++)//根据判断将第1行和最后1行采用挖空法打印出菱形的下半部分
        {
            
if(j==1||j==2*i-1)
            
{
                printf(
"%c",ch);
            }

            
else
            
{
                putchar(
' ');
            }

        }

        putchar(
' ');
    }

    getch();
}

 
原创粉丝点击