问一个关于cpp的问题

这是一个练手的项目,要求这样:

多少行?[输入数字 我输3]

一行多少字?[输入数字 我输5]

 

黑块的x?[输入数字 我输2]

黑块的y?[输入数字 我输3] 

-012345

0 □□□□□

1 □□□□□

2 □■□□□

x,y指从0,0处增加

源代码是这样的

#include <iostream>
using namespace std;
int main()
{
	int line,lines,yline,xp,yp;
	cout<<"多少行?";
	cin>>lines;
	cout<<"一行多少字?";
	cin>>yline;
	cout<<"黑块的x?";
	cin>>xp;
	cout<<"黑块的y?";
	cin>>yp;
	int tmp=yline;
	for (line=0;line<lines;line++){
		for (;yline>0;yline--){
			if (yline==yp&&line==xp){
				cout<<"■";
			}
			else{
				cout<<"□"; 
			}
		}
		yline=tmp;
		cout<<endl;
	}
	return 0;
}

x,y完全是乱的

 

#include <iostream>
using namespace std;
int main()
{
	int line,lines=3,yline=5,xp=2,yp=4;
	/*cout << "多少行?";
	cin >> lines;
	cout << "一行多少字?";
	cin >> yline;
	cout << "黑块的x?";
	cin >> xp;
	cout << "黑块的y?";
	cin >> yp;
	*/
	int tmp=yline;
	for (line=0;line<lines;line++){
		for (int y=0;y<yline;y++){  //for (;yline>0;yline--){    //你的列是倒着数的
			if (y==yp&&line==xp){   //if (yline==yp&&line==xp){
				cout<<"■";
			}
			else{
				cout<<"□"; 
			}
		}
		yline=tmp;
		cout<<endl;
	}
	return 0;
}

 

#include <iostream>
using namespace std;

int main()
{
	int line,lines=3,xline=5,xp=2,yp=3; //x:横列,y:纵行

	/*cout << "多少行?";

	cin >> lines;

	cout << "一行多少字?";

	cin >> xline;

	cout << "黑块的x?";

	cin >> xp;

	cout << "黑块的y?";

	cin >> yp;

	*/
	cout << '-';
	for (int x=0;x<xline;x++)
	{
	    cout << x;
	}
	cout << endl;

	for (line=0;line<lines;line++)  //控制y输出
	{
	    cout << line << "";
	    
		for (int x=0;x<xline;x++)  //控制x输出  //for (;yline>0;yline--)    //你的列是倒着数的
		{
			if (x+1==xp && line+1==yp)  //if (yline==yp&&line==xp)
			{
				cout<<"■";
			}
			else
			{
			    cout<<"□"; 
			}
		}
		cout<<endl;
	}

	return 0;
}