一个C++程序引起的一位

来源:百度知道 编辑:UC知道 时间:2024/05/22 15:52:10
#include <iostream.h>
void main()
{ int a[4][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};
int x;int y;
cout<<"x=";
cout<<"y=";
cin>>x;
cin>>y;
cout<<"a["<<x+1<<"]"<<"["<<y+1<<"]="<<a[x+1][y+1];

}
这个程序已经通过,这个程序是设定了数组的元素a[0][0]的坐标为-1,-1,输入坐标,输出相应的元素值,程序本身没什么问题,但是通过编译后

画面为 x=y= 输入1,1 输出结果为a[2][1],中间加个空格,变成1 1
能得到想要的结果a[2][2],我想问一下大家,这个“,”号为什么会对结果产生影响?

执行cin>>x;从缓冲区读出1,遇到“,”,读取结束;
执行cin>>y;从缓冲区读数字,直接遇到",",读取失败;此时x值已定,y值不确定;
然后后面的就是不确定的输出了

这就是格式啊

,引起读y失败,因为,不是整数。所以y的值不变,仍为其初值(你没初始化y,它的初值不定,你运行时凑巧为0)