机试算法讲解: 第7题 打印一个梯形吧

来源:互联网 发布:穿越火线淘宝网买装备 编辑:程序博客网 时间:2024/05/05 05:29
/*问题:输入高度h,输出高为h,上底边围h的梯形      ------------     --------------    ----------------   ------------------  --------------------思路:由于多出的底边x可以设为任意值,不放设x=h第1行,    h         h第2行,打印h-1个空格,1个*,然后打印h个空格,再打印1个*                            h+2*1  3         h-2       1            h+2*1         1个*                           h+2*2  4         h-3个空格,1个*         h+2*2         1个*  h-1       2         ,1个*        h+2*(h-1-2)个空格,即h+2*(h-3),1个*  i         h+1-i      1个*        h+2*(i-2)个空格,1个*                        h+2*(i-1)  h         1个空格  ,3h个*打印第一行时,先打印h个空格,再打印h个*号,然后打印h个换行符最后打印长度为2h个的*号总结公式:print(*)= {h个空格,h个*,i=1          {1个空格,3h个*,i=h 错,是3h-2个*,因为,h最后一行有2个*公用了  {h+1-i个空格,1个*,h+2*(i-2)个空格,1个**///等腰梯形/*#include <stdio.h>#include <stdlib.h>int main(int argc,char* argv[]){int h,i;while(EOF!=scanf("%d",&h) && h >= 1 && h <= 1000){int iLinNum = 1;while(iLinNum <= h){if(iLinNum > 1 && iLinNum < h){for(i = 1;i <= (h+1-iLinNum) ; i++){printf("%c",' ');}/*printf("%c",'*');for(i = 1; i <= (h+2*(iLinNum-2)) ; i++){printf("%c",' ');}printf("%c",'*');*//*for(i = 1;i <= (h+2*(iLinNum-1)) ; i++){printf("%c",'*');}printf("\n");iLinNum++;}else if(1==iLinNum){for(i = 1 ; i <= h ; i++ ){printf("%c",' ');}for(i = 1 ; i <= h ; i++ ){printf("%c",'*');}printf("\n");iLinNum++;}else if(h==iLinNum){printf("%c",' ');for(i = 1;i <= 3*h - 2 ; i++){printf("%c",'*');}printf("\n");iLinNum++;}//else if}//while}//whilesystem("pause");getchar();return 0;}*//*样例输入:4输出:      ****    ******  ******************公式:第一行h个*,前面空 h+2*(h-1)-h个空格=  2*(h-1)个空格 二   h+2个* i    h+2*(i-1)个*,前面空 h+2*(h-1)-[h+2*(i-1)] = 2*(h-i)个空格 h    h+2*(h-1)个*print(*) = {2*(h-i)个空格,h+2*(i-1)个*,第i行*/#include <stdio.h>#include <stdlib.h>int main(int argc,char* argv[]){int h,i;while(EOF!=scanf("%d",&h) && h >= 1 && h <= 1000){int iLinNum = 1;while(iLinNum <= h){for(i = 1 ; i <= 2*(h-iLinNum); i++){printf("%c",' ');}for(i = 1; i <= h+2*(iLinNum-1) ; i++){printf("%c",'*');}iLinNum++;printf("\n");}}system("pause");getchar();return 0;}

0 0
原创粉丝点击