6_14.cpp
资源名称:6_14.rar [点击查看]
上传用户:cdrcdr123
上传日期:2021-04-10
资源大小:713k
文件大小:1k
源码类别:
控制台编程
开发平台:
C/C++
- // 6_14.cpp : 定义控制台应用程序的入口点。
- //
- #include "stdafx.h"
- #define MAXLINE 80
- int _tmain(int argc, _TCHAR* argv[])
- {
- char ch; //图形中的字符
- int blanks; //字符间的空格数
- int layer; //层数
- printf("请输入图案中的字符,字符间的空格数及图案的层数n");
- scanf("%c%d%d", &ch, &blanks, &layer);
- if(layer%2==0)
- {
- printf("层数必须为奇数n");
- return 1;
- }
- if(layer*(blanks+1)+1>MAXLINE)
- {
- printf("图像太大了!n");
- return 2;
- }
- int j, k;
- int initBlank = (blanks+1)*(layer/2); //每行开头空格数
- int num = 1; //每行字符个数,初值为1;
- for(k=0; k<=layer/2; k++)
- {
- for(j=0; j<initBlank; j++)
- printf(" ");
- //打印num个ch,中间用n个空格隔开
- for(j=0; j<num-1; j++)
- {
- printf("%c", ch);
- for(int i=0; i<blanks; i++)
- printf(" ");
- }
- printf("%cn", ch); //最后一个字符后面不需要空格
- num += 2; //下一行字符数增加2个
- initBlank -= (blanks+1); //计算下一行开头空格的个数
- }
- initBlank += 2*(blanks+1);
- num -= 4;
- for(; k<layer; k++)
- {
- for(j=0; j<initBlank; j++)
- printf(" ");
- //打印num个ch,中间用n个空格隔开
- for(j=0; j<num-1; j++)
- {
- printf("%c", ch);
- for(int i=0; i<blanks; i++)
- printf(" ");
- }
- num -= 2;
- printf("%cn", ch);
- initBlank += (blanks+1);
- }
- return 0;
- }