c语言之打印图形

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

字符图形

例1:*号图形(打印行数n由键盘输入)

分析(2)号图形:

从第1行打印到第n行,打印第i行时(i从1~n),首先打印n-i 个空格;接着打印i个*号;换行; 分析:(6)号图形:

打印第i行(i 从1~n)时,首先打印i-1个空格;接着打印2(n-i)+1个*号;换行;

#include "stdio.h"

void main(){ /*打印(2)号图形*/

int n,i,j;

printf("Input n=");

scanf("%d",&n);

for (i = 1;i <= n;i++) {

for (j = 1;j <= n-i;j++)

putchar(' ');

for (j=1;j<=i;j++)

putchar('*');

printf("\n");

}

}

例2:打印如下数字方阵(打印行数n可输入)

1 2 3 4 5

2 2

3

4 5

3 3 3

4 5

4 4 4 4 5

5 5 5 5 5

(1)

特点:每行主对角线之前打印行号,主对角线之后打印列号

#include "stdio.h"

void main(){

int i,j,n;

printf("Input n =");

scanf("%d",&n);

for (i = 1;i <= n;i++) {

for (j = 1;j <= i;j++)

printf("%4d",i);

for (j = i + 1;j <= n;j++)

printf("%4d",j);

printf("\n");

}

}

1 2 3 4 5

2 3 4 5 1

3 4 5 1 2

4 5 1 2 3

5 1 2 3 4

(2)

特点:每行主对角线之前从行号打到n;主对角线之后从1打到行号-1

#include "stdio.h"

void main(){

int i,j,n;

printf("Input n=");

scanf("%d",&n);

for(i = 1;i <= n;i++) {

for(j = i;j <= n;j++)

printf("%4d",j);

for(j = 1;j <= i-1;j++)

printf("%4d",j);

printf("\n");

}

}

思考:图形位置向屏幕左边移动m列,以及图形位置放在屏幕中央该怎么办?例3:打印n阶杨辉三角形(n由键盘输入)

分析:杨辉三角形的第i行(i从0~n)是i次二项式(x+y)i 的展开系数

递推法计算组合数

#include "stdio.h"

void main(){

int c,n,i,j;

printf("Input n =");

scanf("%d",&n);

for (i = 0;i <= n;i++) {

for (j = 0;j < n-i;j++)

printf("%4c",' ');

c = 1;

for (j = 0;j <= i;j++) {

printf("%4d",c);

printf("%4c",' ');

c = c * (i - j) / (j + 1);

/*可以写成c *= (i - j) / ( j + 1)吗?*/ }

printf("\n");

}

}

相关文档
最新文档