题目大致意思: 输入正方形的宽和 组成边的字母,输出 一个正方形 图案;
思考: 因为行间距和 列间距不一样 ,所以实际我们要输出的行数是列数的一半
还要考虑到一种情况, 输入的列数分奇数和偶数
, 当是奇数时 ,行数为row=col/2+1
,
代码思路: 先用for 循环输出第一行,再用for循环输出第二行到倒数第二行,最后也是for循环输出最后一行;
//比较麻烦的一种写法, 有一点小毛病,我还没发现.欢迎和我讨论
#include<cstdio>
int main(){
int row, col;
char a;
scanf("%d,%c", &col, &a);
if (col % 2 == 1) row = col / 2 + 1;
else row = col / 2;
for (int i = 0; i < col; i++){
printf("%c", a);//先输出第一行图案
}
printf("\n"); //开始换行进入第二行
for (int i = 1; i <= row - 2; i++){
printf("%c", a);
for (int j = 1;j <= col - 2; j++){
printf(" ");
}
printf("%c\n", a);
}
for (int i = 1; i <= col; i++)printf("%c\n", a);
return 0;
}
// 简单的写法
#include<iostream>
using namespace std;
int main(){
int n; char c;
cin >> n >> c;
int r = n / 2 + n % 2;
for (int i = 0; i < n; i++){
cout << c;
}
cout << endl;
for (int i = 0; i < r - 2; i++){
cout << c;
for (int j = 0; j < n - 2; j++)
cout << " ";
cout << c << endl;
}
for (int i = 0; i < n; i++)
cout << c; //此处不能加endl !!!! 应当删除!!!
return 0;
}
第一次写代码,用时1小时半,期间补了许多遗忘的知识点
继续战斗
未完待续