百度文库 - 让每个人平等地提升自我 问题描述; 输出五角星的即是输出满足特定条件的区域范围,再用if 函数进行选择性编辑。而在输出五角星区域范围的时候,可将该范围进行分割描述,每一个部分都找出行列之间的关系,用这种关系可以特定描述某个范围。 设计思路: 用*编出一个五角星,可以将其分解成三个部分,分别为:顶部三角形,中央梯形,底部两个对称的三角形。 在编辑图形的时候,可以考虑使用二维数组,经过测算,定义数组p[50][51],再定义整型变量i,j,以I 表示列。J 表示行。进行编辑。将五角星顶点定在(25,0)处,用 I ,j招出满足在三角形内部时满足的关系。则用for 函数循环。并用if函数写出判断条件,当满足条件时,数组元素p[i][j]输出*,反之输出空格。同理进行梯形和底部三角形的编辑。直至输出完毕,进行换行。 源码及注释: 1 百度文库 - 让每个人平等地提升自我 #include<> void main() { char p[50][51]; /*定义字符型数组*/ int i,j; /*定义整型变量*/ char m,n; m=(“*”);n=(“ “); for(i=0;i<=6;i=i+2) /*从第一行开始循环*/ { for(j=0;j<=51;j++) { If(j<=25+i/2&&j>=25-i/2) /*满足顶部三角形I,j 条件*/ printf(“%c”,m); else printf(“%c”,n); printf(“%c”,p[i][j]); /*输出顶部数组*/ } printf(“\n”); /*换行*/ } for(i=8;i<=14;i=i+2) /*从第8行开始循环*/ { for(j=0;j<=51;j++) {if(j>=12+i/2&&j<=38-i/2 /*满足中央梯形的条件*/ printf(“%c”,m); else printf(“%c”,n); printf(“%c”,p[i][j]); /*输出中间数组*/ } printf(“\n”); } for(i=16;i<=24:i=i+2) /*从地16行循环*/ { for(j=0;j<=51;j++) {if(j>=11+i&&j<=23+i/2) /*满足右下角三角形条件*/ printf(“%c”,m); else if(j<=39-i&&j>=27-i/2) /*满足左下角三角形条件*/ printf(“%c”,m); else printf(“%c”,n); printf(“%c”,p[i][j]); /*输出数组*/ } printf(“\n”); } } 2 百度文库 - 让每个人平等地提升自我 流程图: * m 空格 n 输入p[50][51] I j m n 开始 I=0 i=i+2 I<=6 N J=0,j++ Y Y 输出p[i][j]换行 J<=51 N Y J<=25+i/2且 J>=25-i/2 N 输出m 输出n 同理构造另外两部分 3 本文来源:https://www.wddqw.com/doc/9fc965ea2d60ddccda38376baf1ffc4fff47e230.html