sdut1174 C语言实验——打印菱形

一句话题解:运用类似打印乘法表的方法进行打印,注意处理后半部分的“倒三角”。(详细题解请查看全文)

原题地址在这里


Problem Description

从键盘输入一个整数n(1≤n≤9),打印出指定的菱形。

Input

正整数n(1≤n≤9)。

Output

指定的菱形。

第一行前面有n-1个空格,第二行有n-2个空格,依此类推。

Sample Input

5

Sample Output

    *
   ***
  *****
 *******
*********
 *******
  *****
   ***
    *

说实话这题我看到第一眼脑子里先想的是打表23333,然而n最大有9,打表太麻烦了Orz,还是老老实实输出吧。我分了三个部分,前面是一个正三角形,然后再打一个倒三角出来,结果,,,我tm倒三角调了好几遍才调出来。。

附AC代码:

#include <iostream>
#include <cmath>
#include <cstdio>
#define maxn 10005
using namespace std;
int n;
int main() {
    ios::sync_with_stdio(false);
    cin >> n;
    for (int i = 1; i < n; i++) {
        printf(" ");
        for (int j = 1; j < n - i; j++) {
            printf(" ");
        }
        for (int k = 1; k <= 2 * i - 1; k++)
            printf("*");
        printf("\n");
    }
    for (int i = 1; i <= 2 * n - 1; i++) {
        printf("*");
    }
    printf("\n");
    for (int i = 1; i < n; i++) {
        for (int j = 0; j < i; j++) {
            printf(" ");
        }
        for (int k = 2 * (n - i) - 1; k >= 1; k--) {
            printf("*");
        }
        printf("\n");
    }
    system("pause");
    return 0;
}



/***************************************************
User name: ShawnZhou
Result: Accepted
Take time: 0ms
Take Memory: 740KB
Submit time: 2018-10-18 20:57:40
****************************************************/

-------------本文结束,感谢您的阅读转载请注明原作者及出处-------------

知识无价,码字不易。对您有用,敬请打赏。金额随意,感谢关心。