PTA题目:字符菱形

PTA题目:字符菱形

根据读入的字符和边长,勾画字符菱形。

输入格式:
输入数据含有若干组的数据,每组数据包括一个可见字符c和一个整数n(1≤n≤30)。 以键盘输入^Z或遇到文件结束符时结束数据输入。

输出格式:
输出以c为填充字符,边长为n的菱形,每个菱形之后都输出一个换行符。

输入样例:
在这里给出一组输入。例如:

A 5 B 3
输出样例:
在这里给出相应的输出。例如:

     A
    AAA
   AAAAA
  AAAAAAA
 AAAAAAAAA
  AAAAAAA
   AAAAA
    AAA
     A
   B
  BBB
 BBBBB
  BBB
   B

提示:建议使用c++的cin进行数据输入。

下面是我写的代码:

#include<bits/stdc++.h>
using namespace std;
int main()
{
    
    
  int i,j,k,a,n;
  char c;
  while(cin >> c >> n)
  {
    
    
    k=n;
    a=1;
   for(j=0;j<n;j++)//打印次数控制
   {
    
    
    
    for(i=0;i<k-1;i++)//打印左空格
    {
    
    
      cout << ' ';
    }
    for(i=1;i<=2*a-1;i++)//打印字符
    {
    
    
      cout << c;
    }
    a++;
    cout <<endl;
    k--;
    }
    
    k=n-1;
    a=1;
    for(j=0;j<n-1;j++)//打印次数控制,比上面少一行,故n-1
    {
    
    
      for(i=1;i<=a;i++)//打印空格
      {
    
    
        cout << ' ';
      }
      for(i=1;i<=2*k-1;i++)//打印字符
      {
    
    
        cout << c;
      }
      a++;
      k--;
      cout <<endl;
    }
  
  }
}

运行结果如下:

在这里插入图片描述

分析:

本题主要是观察字符的规律,当然字符的规律是很容易观察出来的,需要注意的是打印空格的时候,打印字符左边的空格就可以了,右边的就不用对称打印了,否则PTA上的编译器会报错(大概是输出格式不正确),这一点需要注意。

猜你喜欢

转载自blog.csdn.net/weixin_47942875/article/details/108923433