前言
目录
注:这两个题均可以使用直接输出的方式
1. BC7-牛牛的字符矩形
牛牛的字符矩形_牛客题霸_牛客网 (nowcoder.com)
描述
牛牛尝试用键盘读入一个字符,然后在屏幕上显示用这个字符组成的 3*3 的矩形。
输入描述:
一行读入一个 char 类型的字符。
输出描述:
输出这个字符组成的 3*3 矩形。
示例
分析
解题思路:
代码实现
#include <stdio.h>
int main(){
char ch;
int i,j;
scanf("%c",&ch);
for(i=0;i<3;i++){ //行数
for(j=0;j<3;j++){ //每行的个数(列数)
printf("%c",ch);
}
printf("\n"); //换行
}
return 0;
}
2. BC7-牛牛的字符菱形
牛牛的字符菱形_牛客题霸_牛客网 (nowcoder.com)
描述
牛牛尝试用键盘读入一个字符,然后在屏幕上显示一个用这个字符填充的对角线长5个字符,倾斜放置的菱形。
输入描述:
输入一个char类型字符
输出描述:
输出一个用这个字符填充的对角线长5个字符,倾斜放置的菱形
示例:
分析
前三行:【第一个大循环】我们可以先分析红色部分的输出规律,第一行输出两个空格,第二行输出一个空格,第三行输出0个空格。好,那我们现在思考一下,有什么样的规律呢? 第一行的两个空格是3-1,第二行的一个空格是3-2,第三行的0个空格是3-3,显而易见,这个规律就是3-行数。最后我们只需要利用循环来实现这个代码即可。
for(k=0;k<3-i;k++){
printf(" ");
下一步我们就该打印字符了,观察字符个数与行数(i)的关系:
因此,打印字符的代码就可以写为
for(j=0;j<2*i-1;j++){
printf("%c",ch);}
后两行:【第二个大循环】令第四行为第二个大循环的第一行,那么我们就可以发现,新的第一行与第二行的行数与所要输出的空格数相同。
for(k=0;k<i;k++)
printf(" ");
最后观察最后两行所输出的字符数,我们依旧利用循环来完成。
第一行循环三次,第二行循环一次,该关系式可以写为5-2*i;
for(j=0;j<5-2*i;j++)
printf("%c",ch);
解题思路
代码实现
#include <stdio.h>
int main(){
char ch;
scanf("%c",&ch);
int i,j,k;
for(i=1;i<=3;i++)
{
for(k=0;k<3-i;k++){
printf(" "); //打印前三行的空格
}
for(j=0;j<2*i-1;j++){
printf("%c",ch); //打印前三行的字符
}
printf("\n"); //前三行 每行结束时换行
}
for(i=1;i<=2;i++)
{
for(k=0;k<i;k++)
printf(" "); //打印最后两行的空格
for(j=0;j<5-2*i;j++)
printf("%c",ch); //最后两行的字符
printf("\n");
}
return 0;
}