本题要求编写程序,输出指定的由“*”组成的倒三角图案。
输入格式:
本题目没有输入。
输出格式:
按照下列格式输出由“*”组成的倒三角图案。
* * * *
* * *
* *
*
这题看似很简单,直接四个printf就可以完成了
但是!!!不就是要挑战自己吗!当然不能这么草率的做题了!
于是,开始了我一次又一次的踩坑活动。。。
第一次,我自以为是的写出了这一段代码
#include <stdio.h>
int main()
{
for(int i=0;i<4;i++)
{
for(int j=0;j<i;j++)
printf(" ");
for(int k=4-i;k>0;k--)
{
printf("* ");
}
printf("\n");
}
return 0;
}
输出是介个亚子的
当我沾沾自喜的把这段代码贴上去时候,系统提示:格式错误
!!!百思不得其解,对照了题目的输出好几遍,明明没有问题的啊!格式错误算哪门子事!
然后,我就去参照了一些刷题小伙伴的经验,发现代码输出的检查真的很严格!
原来最后一个*后面是输出‘\n’,而不是‘ ’ !!!
当时就觉得这也太变态了,太严格了
然后就把代码改了一改
由于空格和换行凭我这个凡人的肉眼真的是看不出来,于是我就把空格和换行都改成了加减号之类的,这样更加能看清楚输出的到底是什么玩意儿
#include <stdio.h>
int main()
{
for(int i=0;i<4;i++)
{
for(int j=0;j<i;j++)
printf("+");
for(int k=4-i;k>0;k--)
{
printf("*-");
//printf(" ");
}
printf("=\n");
}
return 0;
}
改了之后输出一下发现错误还真是不少啊
改进想法子进行了彻底的更改
没有问题的代码:
#include <stdio.h>
int main()
{
for(int i=0;i<4;i++)
{
for(int j=0;j<i;j++)
{
if(j<4)
printf(" ");
}
for(int k=4-i;k>0;k--)
{
printf("*");
if(k>1)
printf(" ");
}
if(i<4)
printf("\n");
}
return 0;
}
满分通过!