牛客网刷题训练(二)
👩💻博客主页:风起 风落的博客主页
✨欢迎关注🖱点赞🎀收藏⭐留言✒
👕参考网站:牛客网
💻首发时间:🎞2022年7月19日🎠
🎨你的收入跟你的不可替代成正比
🀄如果觉得博主的文章还不错的话,请三连支持一下博主哦
💬给大家介绍一个求职刷题收割offer的地方👉点击进入网站
@TOC
1.k形图案
描述
KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的K形图案。
输入描述:
多组输入,一个整数(2~20)。
输出描述:
针对每行输入,输出用“”组成的K形,每个“”后面有一个空格。
#include<stdio.h>
int main()
{
int n=0;
scanf("%d",&n);
int i=0;
int j=0;
for(i=0;i<n;i++)//为n的下三角形
{
for(j=0;j<n+1-i;j++)
{
printf("* ");
}
printf("\n");
}
for(i=0;i<n+1;i++)//为n+1的上三角形
{
for(j=0;j<=i;j++)
{
printf("* ");
}
printf("\n");
}
return 0;
}
这道题 主要想到 分为n的下三角形 和n+1的上三角形
实现每行的 字符个数
2.箭形图案
描述
KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“”组成的箭形图案。
输入描述:
本题多组输入,每行一个整数(2~20)。
输出描述:
针对每行输入,输出用“”组成的箭形。
#include<stdio.h>
int main()
{
int n=0;
int i=0;
int j=0;
while(scanf("%d",&n)!=EOF)
{
for(i=0;i<n;i++)//g为n的上三角形
{
for(j=0;j<n-i;j++)//打印空格
{
printf(" ");
}
for(j=0;j<=i;j++)//每行的字符个数
{
printf("*");
}
printf("\n");
}
for(i=0;i<n+1;i++)//为n+1的下三角形
{
for(j=0;j<2*i;j++)//打印空格
{
printf(" ");
}
for(j=0;j<n+1-i;j++)//每行的字符个数
{
printf("*");
}
printf("\n");
}
}
return 0;
}
主要分为 n的上三角形 和n+1的下三角形
这里格外需要注意空格的存在, 每次都是 2个空格
两者看着都十分离谱,实际上都是由正常的上下三角变化而成的
题目还要求了多组输入的要求 如果不加while 则不会通过
3.反斜线图案
描述
KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“”组成的反斜线形图案。
输入描述:
多组输入,一个整数(2~20),表示输出的行数,也表示组成反斜线的“”的数量。
输出描述:
针对每行输入,输出用“*”组成的反斜线。
#include<stdio.h>
int main()
{
int i=0;
int j=0;
int n=0;
while(scanf("%d",&n)!=EOF)
{
for(i=0;i<n;i++)// 行为n 列为n 的正方形
{
for(j=0;j<n;j++)
{
if(i==j)
{
printf("* ");
}
else
printf(" ");
}
printf("\n");
}
}
return 0;
}
我们只需把这个看作是个正方形 每个都标明下标 如果 i的坐标和j的坐标相等 则为图中图案
这里注意的是; 一定要加上不能满足条件返回 空格, 否则不会通过
4.正斜线图案
描述
KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“”组成的正斜线形图案。
输入描述:
多组输入,一个整数(2~20),表示输出的行数,也表示组成正斜线的“”的数量。
输出描述:
针对每行输入,输出用“*”组成的正斜线。
#include<stdio.h>
int main()
{
int i=0;
int j=0;
int n=0;
while(scanf("%d",&n)!=EOF)
{
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if(i+j==n-1)
{
printf("* ");
}
else
{
printf(" ");
}
}
printf("\n");
}
}
return 0;
}
``
我们只需把这个看作是个正方形 每个都标明下标 如果 i的坐标加上j的坐标为行或者列的+1
则为图中图案
这里注意的是; 一定要加上不能满足条件返回 空格, 否则不会通过
5.空心正方形图案
描述
KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“”组成的“空心”正方形图案。
输入描述:
多组输入,一个整数(3~20),表示输出的行数,也表示组成正方形边的“”的数量。
输出描述:
针对每行输入,输出用“”组成的“空心”正方形,每个“”后面有一个空格。
#include <stdio.h>
int main()
{
int n = 0;
while(scanf("%d", &n) != EOF)
{
for(int i=0; i<n; i++) //外循环为行
{
for(int j=0; j<n; j++) //内循环为列
{
if(i==0||i==n-1||j==0||j==n-1)//找规律
printf("* ");
else
printf(" ");
}
printf("\n");
}
}
}
我们只需把这个看作是个正方形 每个都标明下标
当第一行,最后一行时输入字符
当为第一列 ,最后一列输入字符
这里最最需要注意的是 :空格为两下空格 别问我 怎么知道的
都快吐血了
总结
通过以上来自牛客网的练习题
相信会对学习c语言更有兴趣 ,让我们一起加油吧
不太自信的小伙伴可以看看这个训练
- 点赞
- 收藏
- 关注作者
评论(0)