我正在编写一个程序,其中设置了行数和列的数量。在给出该值之后,程序必须创建一个二维表并要求填充每个表单元格。完成所有操作后,程序必须将数据显示为矩阵。但是,在显示数据方面,有些值在某些情况下翻了一番
我试图在代码或思维方式上找到任何错误,但是对我来说似乎还不错
// when x and y are given these two loops should create and display the table
for(int w = 1;w<x; w++)
{
for(int k = 1;k<y; k++)
{
cout<<"Set the value of the cell with coordinates: "<<w<<","<<k<<" = ";
cin>>tab[w][k];
}
}
for(int w = 1;w<x; w++)
{
for(int k = 1;k<y; k++)
{
cout<<tab[w][k]<<" ";
}
cout<<endl;
}
我希望该程序显示一个具有一定数量的行和列的矩阵,并且最近给出了每个单元格的值。不幸的是,例如我设置:3行,2列并给出值:1,2,3,4,5,6(每个单元格一个(我在Matrix中收到的:1 33 55 6我的编译器既没有错误,也没有警告。
在数组的C 中,索引等于0,因此应将循环更改为:
for(int w = 0;w<x; w++)
{
for(int k = 0;k<y; k++)
{
cout<<"Set the value of the cell with coordinates: "<<w+1<<","<<k+1<<" = ";
cin>>tab[w][k];
}
}
for(int w = 0;w<x; w++)
{
for(int k = 0;k<y; k++)
{
cout<<tab[w][k]<<" ";
}
cout<<endl;
}
如果您给出3个为 X
值,而 Y
值则不能填充6个单元格,因为第一个循环为从1到&lt;3(执行2次(第二循环1至&lt;2(执行1次(。您的循环必须从0开始。