前言:今天是咱们第十期刷牛客网上的题目。
目标:对打印图案做到有手就行。
鸡汤:与其花时间应付以后不理想的生活,不如花时间造就你想要的生活。先干为敬,大家随意。
其实这种题型中规中矩,不难,掌握好方法,后面的题基本上是打印图案
#include
int main()
{
//初始化
int input = 0;
//多组输入
while((scanf("%d", &input)) != EOF)
{
//打印
int i = 0;
int j = 0;
for (i = 0; i < input; i++)
{
for (j = 0; j < input - i; j++)
{
printf("* ");
}
printf("\n");
}
}
return 0;
}
#include
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 - i - 1; j++)
{
printf(" ");
}
//打印*
for (j = 0; j <= i; j++)
{
printf("* ");
}
printf("\n");
}
}
return 0;
}
这道题呢,只要改动上面代码一个地方就行,都是分开打印
#include
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 - i - 1; j++)
{
printf(" ");
}
//打印*
for (j = 0; j <= i; j++)
{
printf("* ");
}
printf("\n");
}
}
return 0;
}
#include
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 < i; j++)
{
printf(" ");
}
//打印*
for (j = 0; j < n - i; j++)
{
printf("* ");
}
printf("\n");
}
}
return 0;
}
在这里插入代码片
这道题只要把菱形分开两部分就行,不要忘记上半部分和下半部分相差行。
#include
int main()
{
//初始化
int n = 0;
//多组输入
while (scanf("%d", &n) != EOF)
{
//上半部分
for (int i = 0; i < n + 1; i++)
{
for (int j = 0; j < n - i; j++)
{
printf(" ");
}
for (int j = 0; j <= i; j++)
{
printf("* ");
}
printf("\n");
}
//下半部分
for (int i = 0; i < n; i++)
{
for (int j = 0; j <= i; j++)
{
printf(" ");
}
for (int j = 0; j < n - i; j++)
{
printf("* ");
}
printf("\n");
}
}
return 0;
}
#include
int main()
{
//初始化
int n = 0;
//多组输入
while (scanf("%d", &n) != EOF)
{
//上一半
for (int i = n + 1; i > 0; i--)
{
for (int j = i; j > 0; j--)
{
printf("* ");
}
printf("\n");
}
//下一半
for (int i = 1; i <= n; i++)
{
for (int j = 0; j <= i; j++)
{
printf("* ");
}
printf("\n");
}
}
return 0;
}
像这种题型有点难度,如果把上面的打印图形理解清楚就可以了。
#include
int main()
{
//初始化
int num;
int i, j, k;
//多组输入
while (scanf("%d", &num) != EOF)
{
//上半部分
for (i = 0; i <= num; i++)
{
for (j = 0; j < num - i; j++)
{
printf(" ");
}
for (k = 0; k <= i; k++)
{
printf("*");
}
printf("\n");
}
//下半部分
for (i = 0; i < num; i++)
{
for (j = 0; j <= i; j++)
{
printf(" ");
}
for (k = 0; k < num - i; k++)
{
printf("*");
}
printf("\n");
}
}
return 0;
}
很多小伙伴看到了这道题,简单,咔咔咔就写完,发现博主写,咋这么复杂,为啥捏,
#include
int main()
{
//初始化
int n = 0;
//多组输入
while (~scanf(" %d", &n))
{
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
//控制打印
if (i == j)
{
printf("*");
}
else
{
printf(" ");
}
}
printf("\n");
}
}
return 0;
}
很多小伙伴看到了这道题,简单,咔咔咔就写完,发现博主写,咋这么复杂,为啥捏,
#include
int main()
{
//初始化
int n = 0;
//多组输入
while (~scanf(" %d", &n))
{
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
if (i + j == n - 1)
{
printf("*");
}
else
{
printf(" ");
}
}
printf("\n");
}
}
return 0;
}
上面的悬念咋样,看到这道题后是不是简单不少呢。
#include
int main()
{
int n = 0;
int i = 0;
int j = 0;
while ((scanf("%d",&n))!=EOF)
{
for (i = 0; i < n; i++)
{
for (j = 0; j < n; j++)
{
if (j == i || j == n - i - 1)
printf("*"); // 对角线和逆对角线
else
printf(" "); // 其余
}
printf("\n");
}
}
return 0;
}
今天的刷题内容就到这里啦,如果上面的题目你有更优的解法,请打在下面的评论区中,独乐乐不如众乐乐。麻烦大家举起自己的小手,给博主三连,有你们的支持就是我最大的动力。预知后事如何,且听下回分解。