字符图形打印

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

j 1 j 1
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",' '); for(c=1, j=0; j<=i; j++) { printf("%4d", c); printf("%4c", ' '); c=c*(i-j)/(j+1); } printf("\n"); } }
1.编写程序,输入整数 n,并根据n的值打印图案。 n 为中间一行的 *号个数。 main() { int n, i, k; scanf("%d", &n); for(i=0; i<n; i++) { for(k=0; k<=i; k++) printf("*"); printf("\n"); } for(i=n; i>0; i--) { for(k=i-1; k>0; k--) printf("*"); printf("\n"); } }
1 2 3 4 5 6 7 8 9
2 4 6 8 10 12 14 16 18
3 6 … … 9 18 27 36 45 54 63 72 81 9 12 15 18 21 24 27
例4:打印如下杨辉三角(用二维数组打印指定行数) #define N 7 1 void main() 1 1 { int yharr[N][N]={0}; 1 2 1 int i, j; 1 3 3 1 1 4 6 4 1 for(i=0; i<N; i++) 1 5 10 10 5 1 { for(j=0; j<=i; j++) 1 6 15 20 15 6 1 { if(j==0) yharr[i][j]=1; else if(i==j) yharr[i][j]=1; else yharr[i][j]=yharr[i-1][j-1]+yharr[i-1][j]; printf("%3d ", yharr[i][j]); } printf("\n");} }
打印n阶杨辉三角形(n由键盘输入)
分析:杨辉三角形的第i行(i从0~n)是i次二项式 (x+y)i 的展开系数
*递推法计算组合数
1 C (i, j 1) (i j ) /( j 1)C (i, j ) i! c(i, j 1) (i j 1)!( j 1)! i j i! c(i, j ) j 1 (i j )! j!
打印(6)号图形 (6)号图形 #include "stdio.h" ******* main() ***** *** { int n, i, j; * printf("input n="); scanf("%d",&n); for(i=1; i<=n; i++) { for(j=1; j<=i-1; j++) putchar(' '); for(j=1; j<=2*(n-i)+1; j++) putchar('*'); printf("\n"); } }
例5:输出以下的图形 #include "stdio.h" main() { int n, a, x; char cc = '#'; scanf("%d", &n); /*输入 4*/ for( x=0; x<n; x++) { for( a=n-x-1; a>0; a-- ) putchar(cc); for( a=0; a<n; a++ ) printf( "%c", 97+a ); printf("\n"); } }
分析(2)号图形: 从第1行打印到第n行,打印第i行时(i从1~n),首先打 印n-i 个空格;接着打印 i个*号;换行; 分析:(6)号图形: 打印第i行(i 从1~n)时,首先打印i-1个空格;接着打 印2(n-i)+1个*号;换行;
打印(2)号图形 (2)号图形 #include "stdio.h" * main() ** *** { 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"); } }
字符图形打印
例1:*号图形 (打印行数 n 由键盘输入)
* * ** ** *** *** **** **** ***** ***** (1) (2) ***** ***** * ******* * **** **** *** ***** *** *** *** ***** *** ***** ** ** ******* * *** * * * (3) (4) (5) (6) (7)
###abcd ##abcd
#abcd
abcdBiblioteka 练习题将例 1上的其余五种图形打印出来
12345 22345 33345 44445 55555
特点:每行主对 角线之前打印行 号,主对角线之 后打印列号
例3:打印九九表
#include "stdio.h" void main() { int i, j; for(i=1; i<=9; i++) { for(j=1; j<=9; j++) printf("%3d", i*j); printf("\n"); } }
当n=4时, 图案如下: * ** *** **** *** ** *
例2:打印如下数字方阵(打印行数n可输入)
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"); } }
相关文档
最新文档