声明:本人还是大一新生,第一次写文章,若有疏漏,大佬轻喷。
题目:
这题说实话,题目非常简单,就是普通的for语句的嵌套循环
但是,这题真正要注意的是审题!
这是第一次敲的代码
#include<iostream>
using namespace std;
int main()
{int n;cin>>n;if(n>=1&&n<=40){for(int i=1;i<=n;i++){for(int j=n-1;j>=i;j--){cout<<' ';}for(int q=1;q<=(2*i-1);q++){cout<<'*';}for(int a=n-1;a>=i;a--){cout<<' ';} cout<<endl;}}}
编译运行后,我取了n=5,试了一下,结果好像是对的,但是,一提交,显示只有20分,其它几例都显示格式有误,我就百思不得其解,然后经过一个好哥儿们的开导,终于发现了盲点!如下图所示。
这句话啥意思呢?
也就是说前面要打空格,后面无需打空格。
因此只需稍作修改。
#include<iostream>
using namespace std;
int main()
{int n;cin>>n;if(n>=1&&n<=40){for(int i=1;i<=n;i++){for(int j=n-1;j>=i;j--){cout<<' ';}for(int q=1;q<=(2*i-1);q++){cout<<'*';}cout<<endl;}}}
一提交,果然满分。就是把最后一个for循环删去即可。
再附上好哥儿们的解法
思路和我不太一样哈
这应该是遇到的第一条,要求细心审题的编程题,记录下来,作纪念。
(ps:第一次写博客,好开心!!!)