填充2D数组

时间:2018-03-22 15:54:22

标签: c++ arrays

  • 嗨,我正在尝试用C ++创建一个数组,专门用用户输入填充2D数组,然后将其命令为升序和降序。
  • 所以其中一些可能是由一位朋友给出的,而我创造的其余部分,我不知道我做错了什么..
  • 我已经能够输出静态生成的数组,但无法使用用户的输入进行存储。

- 对我来说代码很有意义,但我不知道如何将用户输入存储到数组中,任何人都可以帮助/强调一下吗?因为我不确定如何填充2D数组或对C ++非常有信心。

int main ()
{

    int array[6][5];
    int i, j, swapx, swapy;

    printf("Initial array \n");
    for (i = 0; i < N; i++)
    {
        printf ("{%d, %d}", array[0][i], array [1][i]);
        if(i != (N - 1)){
            printf(", ");
        }
    }

    for (i = 0; i < (N - 1); i++)
    {
        for (j = 0; j < (N - i - 1); j++)
        {
            if(array[0][j] > array[0][j+1]){
                swapx = array[0][j];
                swapy = array[1][j];
                array[0][j] = array[0][j+1];
                array[1][j] = array[1][j+1];
                array[0][j+i] = swapx;
                array[1][j+1] = swapy;
            }
        }
    }

    printf("\nSorted Array: \n");
    for (i = 0; i < N; i++)
    {
        printf ("{%d, %d}", array[0][i], array [1][i]);
        if(i != (N - 1)){
            printf(", ");
        }
    }
}

1 个答案:

答案 0 :(得分:0)

您必须循环遍历2D数组的每一行然后列,并使用std::cin通过输入设置列值。

#include <iostream>
#include <string>

int main()
{
    int arr[2][2];
    std::cout << "Enter four values: ";

    //loop through each row
    for (auto& row : arr) {
        //loop through each column
        for (auto& col : row) {
            std::cin >> col;
            //obtain input
        }
    }

    for (auto& row : arr) {
        for (auto& col : row) {
            std::cout << col << ' ';
        }
        std::cout << std::endl;
    }

    //do what you want with the array
}