一个很初级的c++编程题。

来源:百度知道 编辑:UC知道 时间:2024/06/03 19:38:30
输入n,先 判断n的值是否符合要求(大于零),再画一个n行的星号空心三角形
比如输入3
*****
* *
*
输入5
*********
* *
* *
* *
*

下面的程序那里不对,为什么出来的是方型

#include<iostream.h>
void main()
{
int n;
cout<<"input a number as N"<<endl<<endl;
cin>>n;
if (n<=0)
cout<<"error,pleas input a right number"<<endl;
for (int i=0;i<(2*n-1);i++)
{
cout<<"*";
}
cout<<endl;
for (int p=1;p<n;p++)
{
for(int q=0;q<(2*n-1);q++)
{
if (q=(p+1))
cout<<"*";
else if (q=(2*n-1-p))
cout<<"*";
else
cout<<" ";
}
cout<<endl;
}

}

#include<iostream.h>
void main()
{
int n;
cout<<"input a number as N"<<endl<<endl;
cin>>n;
if (n<=0)
cout<<"error,pleas input a right number"<<endl;
cout<<" ";
for (int i=0;i<(2*n-1);i++)
{
cout<<"*";
}
cout<<endl;
for (int p=1;p<n;p++)
{
for(int q=0;q<(2*n-1);q++)
{
if (q==(p+1))//这里应该是比较,不是赋值哟
cout<<"*";
else if (q==(2*n-1-p))//这里应该是比较,不是赋值哟
cout<<"*";
else
cout<<" ";
}
cout<<endl;
}

}

.c 1: 无法打开包含文件 'iostrea.c 5:
未定义的符号'cout'在 main 函数中

有两处错误:

if (q=(p+1))
改为
if (q==(p+1))

else if (q=(2*n-1-p))
改为
else if (q==(2*n-1-p))

修改后的程序如