首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

本人初学者,求解释

2013-09-29 
本人菜鸟,求解释这是源代码#includeiostream//连线棋游戏using namespace stdint main(){int i,j,x,yc

本人菜鸟,求解释
这是源代码
#include<iostream>//连线棋游戏
using namespace std;

int main()
{
int i,j,x,y;
char p[2][2];

for(i=0;i<=2;i++)//构造棋盘
{
for(j=0;j<=2;j++)
{
p[i][j]='#';
cout<<p[i][j]<<" ";
}
cout<<endl;
}

cout<<"请输入横、纵坐标x,y(x,y必须小于2)"<<endl;//选择要下的棋子的位置
        cout<<"x=";
cin>>x;
cout<<"y=";
cin>>y;
if(x>2||y>2)
{
cout<<"x,y必须小于2,请重新输入:"<<endl;
cout<<"x=";
        cin>>x;
        cout<<"y=";
        cin>>y;
}
p[x][y]='*';

for(i=0;i<=2;i++)//输出新的棋盘布局
{
for(j=0;j<=2;j++)
{
cout<<p[i][j]<<" ";
}
cout<<endl;
}


}
可结果竟然出现笑脸,结果附图本人初学者,求解释
[解决办法]
您确定是:
char p[2][2];?
越界了吧?
[解决办法]
应该是
p[3][3]
[解决办法]
改成 char p[3][3];
[解决办法]
出现乱码一般是数组越界了,改是 char p[3][3]试试。
[解决办法]
“多一少一”问题占程序员常犯错误的10%以上!

[解决办法]



// char p[2][2];  //你定义的是2*2
 char p[3][3]; 
for(i=0;i<=2;i++)//构造棋盘   //构造的是3*3
{
for(j=0;j<=2;j++)    //这里相当与是 3*3的矩阵了,你定义的确实2*2的
{
p[i][j]='#';
cout<<p[i][j]<<" ";
}
cout<<endl;
}

热点排行