用C语言打印一个菱形

如何用C输出一个菱形呢?有的人可能会说直接用printf打印。在行数很少的时候这是可以的,但是如果行数太大,很显然这个做法就非常不合理。那我们首先想到的就会是用循环来解决这个问题,先打印上半部分,再打印下半部分。

#include <stdio.h>

#include <windows.h>

int main()
{
int i = 0;
int j = 0;
int line = 0;
int k = 0;
printf("请输入行数:\n");

scanf_s("%d",&line);//在vs2008中,对scanf做了修改。

//先打印上半部分

for(i=0; i<line; i++)//控制行数
{
        for(j=0; j<line-1-i; j++)//控制空格
   {
   printf(" ");
   }
   for(k=0; k<2*i+1; k++)//控制星号
   {
   printf("*");
   }
printf("\n");

}

//打印下半部分

for(i=0; i<line-1; i++)//控制行数
{
for(j=0; j<i+1; j++)//控制空格
{
printf(" ");
}
for(k=0; k<2*(line-1-i)-1; k++)//控制星号
{
printf("*");
}
printf("\n");
}
system("color F1");//改变颜色
return 0;
}
用C语言打印一个菱形