php网站开发套模板步骤中国建设银行个人信息网站
2026/4/6 9:17:12 网站建设 项目流程
php网站开发套模板步骤,中国建设银行个人信息网站,项目管理软件有哪些,一起看地图app下载手机版目录题目题目解析题目理解空格图-坐标解析字母递增图-坐标解析字母递减图-坐标解析代码汇总验证代码汇总终端运行验证坐标图解法的好处建议好处题目 实现字母金字塔#xff0c;通过键盘输入字符来控制层数#xff0c;如输入D#xff0c;则打印下面图形 AABAABCBAABCDCBA题目…目录题目题目解析题目理解空格图-坐标解析字母递增图-坐标解析字母递减图-坐标解析代码汇总验证代码汇总终端运行验证坐标图解法的好处建议好处题目实现字母金字塔通过键盘输入字符来控制层数如输入D则打印下面图形A ABA ABCBA ABCDCBA题目解析题目理解由题目中的图形可知主要是打印字母的金字塔这个金字塔怎么构成的勒每一行都是以首字母A开始递增后到每一行的最大值后又递减到首字母A结束行数等于输入字母-首字母数即char(D)-A1;每一行最中间的字母以此增加到输入字母charD结束每一行的最大值跟行数成现行关系Aix系数假如不是最后一行那么在输入字母之前需要先有空格每一行的字母数量是行数*2-1个如果把这个字母金字塔看成一个整体那么我们不但需要判断打印空格的时机还要判断打印递增字母的时机还得判断递减字母的时机会导致思路很复杂。这种复杂的想法不适合初学者思考因此我这边建议将图形分开成三份后再做处理。假定1输入的变量元素chr就是D首元素就是A2那么需要打印的行数就是len D-A143i代表行数j代表列数空格图-坐标解析i/j01230***1**2*3空格坐标图以*表示占位根据空格图我们知道需要打印的空格以代码表示为for(inti0;ilen-1;i){//从坐标图看从i0开始就有到3结束共4列也就等于len-14-13for(intj0;jlen-1-i;j){//从坐标图看从j0开始第一行打印到len-1-1结算之后以此少打一个即到j(len-1)-i结束printf( );//打印空格}printf(\n);//一行打印完后进行换行}字母递增图-坐标解析i/j01230A1AB2ABC3ABCD字母递增图空格已经打印完了的情况下即空格已经占位好了那么这个字母递增图从实际写代码出发会进行变种到如下所示i/j01230A1AB2ABC3ABCD字母递增图修订根据坐标图我们知道需要打印递增字母以代码表示为for(inti0;ilen-1;i){//从坐标图看从i0开始就有到3结束共4列也就等于len-14-13for(intj0;ji;j){//从坐标图看从j0开始每一行都是ij的时候结束printf(Aj);//打印字母以首字母A开始每一列加j}printf(\n);//一行打印完后进行换行}字母递减图-坐标解析i/j012301A2BA3CBA字母递减坐标图根据坐标图我们知道需要打印的代码表示为for(inti0;ilen-1;i){//从坐标图看从i0开始就有到3结束共4列也就等于len-14-13for(intj1;ji;j){//从坐标图看从j1开始每一行都是ij的时候结束printf(Ai-j);//打印字母,每次结束的时候都是A然后以此往坐标的左边加1所以是-j每一行又都是ij时结束所以加了一个i,带入公式验证两行无误即可编译验证}printf(\n);//一行打印完后进行换行}代码汇总验证代码汇总intmain(intargc,charconst*argv[]){charchr;printf(input char A~Z/a~z/0-9:);scanf(%c,chr);charchr_sop;intlen;switch(chr){caseA...Z:lenchr-A1;chr_sopA;break;casea...z:lenchr-a1;chr_sopa;break;case0...9:lenchr-01;chr_sop0;break;default:printf(input error\n);return0;break;}for(chari0;ilen-1;i){for(intj0;j(len-1)-i;j){printf( );}for(intj0;ji;j){printf(%c,chr_sopj);}for(intj1;ji;j){printf(%c,chr_sopi-j);}printf(\n);}return0;}我这里汇总的代码与前面的图解代码几乎一模一样。只是做了以下优化:1)将字符的长度与首字符用变量len和chr_sop表示方便处理不同的类型2用switch …case…语句将输入的字符分类扩展到可以处理三种类型的金字塔3在字符完全不合规的情况下直接return 退出执行代码其余地方与图解一样甚至连坐标的起始都一样。终端运行验证可以看到输出的结果与题目一模一样且可以打印超过D大小的金字塔坐标图解法的好处建议1初学者做图形打印练习的时候都先画坐标图再写代码2初学者的坐标都以i/j都以0(或1)开始自加形式然后去找结束条件好处可以从坐标图清晰看出图形的i有几列第一层循环很清晰****基本可以无脑写(int i0;ix;i)每一行的打印开始位置且都是自增的情况下第二层循环可以无脑先写成(for(int j0或则其他根据图来;循环条件;j))。然后就再去找循环的条件即可可以很清晰的看出来每行的打印规律而且就算第一次没把规律找对也可以很对照坐标很轻松验证再去调整总结一下好处就是1循环体很好写出来不用纠结循环体的写法只要去找循环条件即可都是自增不用多余考虑是否需要自减2对比思路很清晰顺带梳理了写代码的思路

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询