c语言之打印图形.docVIP

  • 17
  • 0
  • 约1.6千字
  • 约 3页
  • 2017-06-07 发布于重庆
  • 举报
c语言之打印图形

字符图形 例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; ?爌rintf(Input n =); ?爏canf(%d,n); ?爁or (i = 0;i = n;i++) { ?牋 爁or (j = 0;j n-i;j++) ?牋 牋 爌rintf(%4c, ); ?牋 燾 = 1; ?牋 爁or (j = 0;j = i;j++) { ?牋 牋 爌rintf(%4d,c); ?牋 牋 爌rintf(%4c, ); ?牋 牋 燾 = c * (i - j) / (j + 1); ? ?? ?? ?/*可以写成c *= (i - j) / ( j + 1)吗?*/ ? ?? ?} ? ?printf(\n); ? ?} }

文档评论(0)

1亿VIP精品文档

相关文档