您的位置:首页 > 编程语言

c基础(打印出菱形图案)

2012-07-04 00:00 169 查看
方法一:(自个写的用数学方法寻找每行的规律,一次打印一行)有点麻烦

#include<stdio.h>
int main()
{
int i,j,n,k=0;
/********输入一个数用来控制打印出菱形的宽度*********/
scanf("%d",&n);
char a[2*n-1][2*n-1];
/*********分两部分打印每次打印出一行**************/
for(i=0;i<n;i++)
{
for(j=0;j<2*n-1;j++)
{
if(j>=((2*n-1)/2-i)&&j<=((2*n-1)/2+i)) /**寻找每行的规律***/
putchar('*');
else
putchar('.');
}
putchar(10);
}
for(i=n;i<2*n-1;i++)
{
k++;//此变量只是用于找规律而加的一个参数
for(j=0;j<2*n-1;j++)
{
if(j>=((2*n-1)/2-i+2*k)&&j<=((2*n-1)/2+i-2*k))
putchar('*');
else
putchar('.');
}
putchar(10);
}
return 0;
}

方法二:(分六部分打印)

#include <stdio.h>

int main()
{
int i,j;
int nu;
puts("input your number:");//控制菱形的行数,不是总行数而是到中间的行数
while(1 != scanf("%d",&nu))
getchar();
//分两大部分,每部分再分为三部分
for(i = 0; i < nu; i ++)
{
for(j = nu - i; j > 0; j --)
putchar('.');
for(j = 0; j < 2 * i + 1; j ++)
putchar('*');
for(j = nu - i; j > 0; j --)
putchar('.');
putchar(10);
}
for(i = 0; i < nu -1; i ++ )
{
for(j = 0;j < i + 2; j ++ )
putchar('.');
for(j = 2 * (nu - i) - 3; j > 0; j -- )
putchar('*');
for(j = 0;j < i + 2; j ++ )
putchar('.');
putchar(10);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c编程 打印菱形