把一个字符三角形掏空,就能节省材料成本,减轻重量,但关键是为了追求另一种视觉效果。在设计的过程中,需要给出各种花纹的材料和大小尺寸的三角形样板,通过电脑临时做出来,以便看看效果。
输入
每行包含一个字符和一个整数n(0<n<41),不同的字符表示不同的花纹,整数n表示等腰三角形的高。显然其底边长为2n-1。如果遇到@字符,则表示所做出来的样板三角形已经够了。
输出
每个样板三角形之间应空上一行,三角形的中间为空。显然行末没有多余的空格。
样例输入 Copy
X 2
A 7
@
样例输出 Copy(显示错误,实为△型)
X
XXX

  A
 A A
A   A

A A
A A
A A
AAAAAAAAAAAAA
代码示例(自己写的,只能过平台,不完美)

//#include<iostream>
//#include<string>
//#include<string.h>
//#include<cstring>
//using namespace std;
//
//int main(){
//    int n = 0;
//    char ch;ww
//    while((ch = getchar()) != '@'){
//        scanf("%d",&n); //此处可以换为 scanf("%d%*c",&n);%*c跳过一个字符
//        getchar();//scanf需循环输入,需使用gechar()吃掉上一次输入后暂存在buffer里面的(\n)空格 
//        for(int i = 0; i < n - 1; i++){//控制输出字符的行数(不含最后一行) 
//            for(int j = i; j < n - 1; j++){ //控制左侧输出空格数 
//                printf(" ");
//            }
//            if(i == 0){//第一行输出一个ch并换行 
//                printf("%c\n",ch);
//                continue;
//            }else{//中间行输出 
//                printf("%c",ch);//输出一个ch; 
//                for(int k = 2 * i - 1; k > 0; k--){//输出中间的空格数 
//                    printf(" ");
//                }
//                printf("%c\n",ch);//输出右边的一个ch并换行 
//            }
//        }
//        for(int l = 2 * n - 1; l > 0; l--){//最后一行输出2*n - 1个ch 
//            printf("%c",ch);
//        }
//        printf("\n\n");//图形之间空一行 
//    }
//    return 0;
//}


沐小轲
9 声望0 粉丝

C++初学者