C语言典型例题——关于图形输出
在C语言学习中我们会遇到各种输出图形的题目,下面我们就来看一些这种题目。
一、编写程序输出下图所示的图形。
(1)(2)(3)(11)
下面我们分别以i、j、k分别表示行数,空格数,星号数。
(1)i j k (2) i j k (3) i j k
1 0 1 1 6 1 1 0 9
2 0 2 2 5 2 2 1 7
3 0 3 3
4 3 3 2 5
4 0 4 4 3 4 4 3 3
5 0 5 5 2 5 5 4 1
6 0 6 6 1 6 j<=i-1
7 0 7 7 0 7 k<=11-2*i
K<=i j<=7-i
K<=i
发现行数、空格、星号有如上关系,用for循环便可实现。
(1)
#include"stdio.h"
void main()
{int i,j;
for(i=1;i<=7;i++)
{for(j=1;j<=i;j++) printf("*");
printf("\n");
}
}
(2)
#include"stdio.h"
void main()
{int i,j,k;
for(i=1;i<=7;i++)
{for(j=1;j<=7-i;j++) printf(" ");
for(k=1;k<=i;k++) printf("*");
printf("\n");
}
}
(3)
#include"stdio.h"
void main()
{int i,j,k;
for(i=1;i<=6;i++)
{for(j=1;j<=i-1;j++) printf(" ");
for(k=1;k<=11-2*i;k++) printf("*");
printf("\n");
}
}
然后我们在进行扩展。编写程序输出如下图型。
(4)(5)(6)所编程序如下:
(4)
#include"stdio.h"
void main()
{int i,j,k;
for(i=1;i<=7;i++)
{for(j=1;j<=8-i;j++) printf("*");
printf("\n");
}
}
(5)
#include"stdio.h"
void main()
{int i,j,k;
for(i=1;i<=7;i++)
{for(j=1;j<=i-1;j++) printf(" ");
for(k=1;k<=8-i;k++) printf("*");
printf("\n");
}
}
(6)
#include"stdio.h"
void main()
{int i,j,k;
for(i=1;i<=5;i++)
{for(j=1;j<=7-i;j++) printf(" ");
for(k=1;k<=2*i-1;k++) printf("*");
printf("\n");
}
}
下面我们再来分析组合图形。对于组合图形,我们应该把它分成一块一块图形,然后按顺序编写每一块图形的程序,然后组合在一起再进行输出。
二、编写程序输出如下图型。
(7)(8)(9)(10)
编写程序如下:
(7)
#include"stdio.h"
void main()
{int i,j,k;
for(i=1;i<=4;i++)
{for(j=1;j<=4-i;j++) printf(" ");
for(k=1;k<=2*i-1;k++) printf("*");
printf("\n");
}
for(i=1;i<=4;i++)
{for(j=1;j
for(k=1;k<=7-2*i;k++) printf("*");
printf("\n");
}
}
(8)
#include"stdio.h"
void main()
{int i,j,k;
for(i=1;i<=5;i++)
{for(j=1;j<=5-i;j++) printf(" ");
for(k=1;k<=i;k++) printf("*");
printf("\n");
}
for(i=1;i<=4;i++)
{for(k=1;k<=5-i;k++) printf("*");
printf("\n");
}
}
(9)
#include"stdio.h"
void main()
{int i,j;
for(i=1;i<=5;i++)
{for(j=1;j<=i;j++) printf("*");
printf("\n");
}
for(i=1;i<=4;i++)
{for(j=1;j<=5-i;j++) printf("*");
printf("\n");
}
}
(10)
#include"stdio.h"
void main()
{int i,j,k;
for(i=1;i<=5;i++)
{for(j=1;j<=5-i;j++) printf(" ");
for(k=1;k<=i;k++) printf("*");
printf("\n");
}
for(i=1;i<=4;i++)
{for(j=0;j<=i-1;j++) printf(" ");
for(k=1;k<=5-i;k++) printf("*");
printf("\n");
}
}
最后我们再来编两个有趣的程序,编写程序输出图(11)[在第一页]与图(12)树状图形。
(12)
(11)
#include"stdio.h"
void main()
{int i,j,k;
for(i=1;i<=6;i++)
{for(j=1;j<=6-i;j++) printf(" ");
for(k=1;k<=2*i-1;k++) printf("*");
printf("\n");
}
for(i=1;i<=4;i++)
{for(j=1;j<=5;j++) printf(" ");
for(k=1;k<=1;k++) printf("*");
printf("\n");
}
printf(" * *\n");
printf(" **\n");
}
(12)
#include"stdio.h"
void main()
{int i,j,k;
for(i=1;i<=3;i++)
{for(j=1;j<=11-i;j++) printf(" ");
for(k=1;k<=2*i-1;k++) printf("*");
printf("\n");
}
for(i=1;i<=5;i++)
{for(j=1;j<=11-i;j++) printf(" ");
for(k=1;k<=2*i-1;k++) printf("*");
printf("\n");
}
for(i=1;i<=7;i++)
{for(j=1;j<=11-i;j++) printf(" ");
for(k=1;k<=2*i-1;k++) printf("*");
printf("\n");
}
for(i=1;i<=7;i++)
{for(j=1;j<=9;j++) printf(" ");
for(k=1;k<=3;k++) printf("*");
printf("\n");
}
for(i=1;i<=2;i++)
{for(k=1;k<=21;k++) printf("*");
printf("\n");
}
}
从上边一系列此类图形输出编程无非就是找行数、空格数及星号数之间的关系,在进行一系列组合便能输出更为复杂的图形。亲爱的同学希望这对你能有所帮助。