1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > c语言打印字符图案 C语言-打印字符图形.doc

c语言打印字符图案 C语言-打印字符图形.doc

时间:2021-10-13 00:46:23

相关推荐

c语言打印字符图案 C语言-打印字符图形.doc

C语言-打印字符图形

打印字符图形

例1 用for循环编程画出下列图形:

M

MM

MMM

MMMM

MMMMM

MMMMMM

MMMMMMM

MMMMMMMM

MMMMMMMMM

MMMMMMMMMM

分析:该图形一共有10行,每一行增加一个字符,所以,应循环10次,每次输出一行,其循环模式为:

for i 1;i 10;i++ 输出第i行

换行 “输出第i行”是在for循环中的一个小循环。每次执行“输出第i行”,其长度都是不一样的,但长度的变化正好与循环变量i同步,故可以依赖于i。注意到第i行的M字符数与i的关系。

行 i M数

1 1 1

2 2 2

3 3 3

4 4 4

10 10 10

所以,可以得到“输出第i行”的循环为:

for j 1;j i;j++ printf “%c”,’M’

完整的程序如下:

#include

main int i,j;

for i 1;i 10;i++ for j 1;j i;j++ printf "%c",'M' ; printf "\n" ; 说明:对付这种字符图形,一般用两重循环,外循环遍历所有行,内循环遍历行中每个字符。

例2 输出下列图形:

MMMMMMMMMMMMMMMMMMM

MMMMMMMMMMMMMMMMM

MMMMMMMMMMMMMMM

MMMMMMMMMMMMM

MMMMMMMMMMM

MMMMMMMMM

MMMMMMM

MMMMM

MMM

M

分析:该图形一共有10行,这次要考虑每行中,先输出若干个空格,所以,其外循环为:

for i 1;i 10;i++ 输出若干个空格

输出若干M

换行 下面列出在第i行,其空格数,M数与i的关系为:

行i 空格数 M数

1 0 19

2 1 17

3 2 15

4 3 13

10 9 1

即第i行的空格数为i-1个,M个数为21-2i。即在第i行输出空格和输出M字符的内循环分别为:

for j 1;j i-1;j++

printf “ ” ;

for k 1;k 21-2i;k++

printf “%c”,’M’ ;

合起来,构成一个完整程序如下:

#include

main int i,j,k;

for i 1;i 10;i++ for j 1;j i-1;j++ printf " " ; for k 1;k 21-2*i;k++ printf "%c",'M' ; printf "\n" ; 例3 输出下列图形:

A

ABC

ABCDE

ABCDEFG

ABCDEFGHI

ABCDEFGHIJK

ABCDEFGHIJKLM

ABCDEFGHIJKLMNO

ABCDEFGHIJKLMNOPQ

ABCDEFGHIJKLMNOPQRS

分析:该图形一共有10行,这次要考虑每行中,先输出若干个空格,所以,其外循环为:

for i 1;i 10;i++ 输出若干个空格

输出若干字符

换行 如果要输出A起头依序的n n 27 个字母,可以为:

for ch 'A';ch 'A'+n;++ch printf "%c",ch ;

下面分析每一行中的空格数与字符数与第i行之间的关系着手:

行i 空格数 字符数

1 9 1

2 8 3

3 7 5

4 6 7

10 0 19

即第i行的空格数据为10-i个,字符数为2i-1。因此,输出空格数和字符数的内循环分别为:

for j 1;j 10-i;++j /*输出空格数*/ printf " " ;

for ch 'A';ch 'A'+2*i-1;++ch printf "%c",ch ;

合起来,构成一个完整程序如下:

#include

main int i,j;

char ch;

for i 1;i 10;i++ for j 1;j 10-i;++j /*输出空格数*/ printf " " ; for ch 'A';ch 'A'+2*i-1;++ch /*输出字符*/ printf "%c",ch ; printf "\n" ; 例4 输出下列图形: *

***

*****

*******

*****

*** *

上面的图形可以分成两部分:

(1)

*

***

*****

*******

与例3的分析一样,输出空格数和字符数的内循环分别为:

for j 1;j 4-i;++j /*输出空格数*/ printf " " ;

for k 1;k 2*i-1;++k /*输出“*”号*/ printf "*" ;

(2)

*****

*** *

与例2的分析一样,输出空格数和字符数的内循环分别为:

for j 1;j i;++j /*输出空格数*/ printf " " ;

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。