菱形输出-小江增强版
题目描述
小丁说她一直比较头疼图形输出题,于是一个星期前她找小江学习了图形输出题的解题方法,这一类问题其实就是寻找行列和输出内容的联系即可。
受此启发,作为一位仁慈的出题人,为了检验大家这段时间学习的怎么样,小江特意修改了一下这道题,本题主要考察对for的控制以及if的使用,请大家根据下方的要求,完成这一道“简单”的图形输出题吧!
要求输入n的值,按图形打印规则打印相应图形!
输入格式
只有一行,一个数字 n , n 为菱形中心位置的数字。
输出格式
按要求输出相应图形。
样例
数据范围
n为整数,且 1 ≤ n ≤ 10^3
Tips
请忽略10以上时无法对齐的情况,正常输出即可!
思路:
主要是进行划分,可以划分为上半部分和下半部分,左半部分和右半部分。
下面请看AC代码(仅供参考):
#include<stdio.h>
int main() {
int n;
scanf("%d", &n);
//输出上半段
for (int i = 1; i <= n; i++) printf(" ");
printf("+\n");//第一行
for (int i = 1; i <= n; i ++ ) {
// 左部
for (int j = 1; j <= n - i; j ++) printf(" ");
printf("+");
for (int j = 1; j <= i; j ++) printf("%d", j);
// 右部
for (int j = i - 1; j >= 1; j --) printf("%d", j);
printf("+\n");
}
//输出下半段
for (int i = n - 1; i >= 1; i --) {
// 左部
for (int j = 1; j <= n - i; j ++) printf(" ");
printf("+");
for (int j = 1; j <= i; j ++) printf("%d", j);
// 右部
for (int j = i - 1; j >= 1; j --) printf("%d", j);
printf("+\n");
}
for (int i = 1; i <= n; i++) printf(" ");
printf("+\n");//最后一行
return 0;
}
没有什么能阻止我对知识的追求!!!

浙公网安备 33010602011771号