为什么我的二维表不正确显示



我正在编写一个程序,其中设置了行数和列的数量。在给出该值之后,程序必须创建一个二维表并要求填充每个表单元格。完成所有操作后,程序必须将数据显示为矩阵。但是,在显示数据方面,有些值在某些情况下翻了一番

我试图在代码或思维方式上找到任何错误,但是对我来说似乎还不错

// 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开始。

最新更新