C++编译*点菱型怎么不成功?

来源:百度知道 编辑:UC知道 时间:2024/05/11 13:18:29
#include<iostream>
using namespace std;
int main()
{
for(int i=1;i<=4;++i)
{
for(int j=1;j<=5-i;++j)
cout<<" ";
for(int k=1;k<=2*i-1;++k)
cout<<"*";
cout<<"\n";
}
for(int i=1;i<=3;++i)
{
for(int j=0;j<=i-1;++j)
cout<<" ";
for(int k=1;k<=7-2*i;++k)
cout<<"*";
cout<<"\n";
}
}

#include<iostream>
using namespace std;
void main()
{
for(int i=1;i<=4;++i)
{
for(int j=1;j<=5-i;++j)
cout<<" ";
for(int k=1;k<=2*i-1;++k)
cout<<"*";
cout<<"\n";
}
for(int s=1;s<=3;++s)
{
for(int j=0;j<=s;++j)
cout<<" ";
for(int k=1;k<=7-2*s;++k)
cout<<"*";
cout<<"\n";
}
}

看了楼下的答案,我觉得楼下回答得比较细心,我有点不好意思,所以补充一下.
因为用的是c++,所以那个i不能重复定义.
main的返回值是个warning,不耽误执行,但是为了规范还是修改为void类型,或者return 一个数值.

而且这个程序有一个小逻辑错误.好像原来的程序下半部分输出是错误的,我给改了一个地方for(int j=0;j<=s;++j)

把第二个含有i的for语句前面的int 去掉。重复定义了。
for(int i=1;i<=3;++i) --》for(i=1;i<=3;++i)

最后一个}前面加return 0;0可改为其他数字。返回一个值。
因为你定义的main返回值是int。
按照linglingruyu 那样改也对~。