根据用户输入对2d阵列进行排序和打印

时间:2016-04-30 08:11:35

标签: c++ arrays

我已经创建了一个二维数组程序,我正在尝试打印出基于用户选择的数组

这是数组

 1 2 3
1a b c
2d e f
3g h i

如果用户键在1b3中,它将显示 adgbehcfi

如果输入c21,它将显示 cfibehadg

现在我已经创建了数组,但是如果我打算如何根据用户输入打印出阵列的顺序,请帮助我。谢谢。

花了一天时间,以下是我的代码

#include <iostream>;
using namespace std;

int main()
{
    string alphabate;
    string array[3][3];
    string a="abcdefghi";

for(int i=0; i<3; i++)
{
    for(int j=0; j<3; j++)
    {
        array[i][j] = a[j+ (i * 3)];
    }
}

for(int i=0; i<3; i++)
{
    for(int j=0; j<3; j++)
    {
        cout << array[i][j];
    }

    cout << endl;
}

cout << "Enter some alphabate:";
cin >>alphabate;

    return 0;
}

1 个答案:

答案 0 :(得分:0)

据我所知,您只想根据用户输入的列号/索引打印数组元素。这就是我意识到的。希望有所帮助:)

#include <iostream>
#include <string>
using namespace std;

string array[3][3];

//function that prints the column c of the array
void printArray(int c) {
    for(int i=0; i<3; i++) {
        cout << array[i][c];
    }
}

int main() {

    string alphabate;
    string a="abcdefghi";

    for(int i=0; i<3; i++) {
        for(int j=0; j<3; j++) {
            array[i][j] = a[j+ (i * 3)];
        }
    }

    cout << "Enter some alphabate:";
    cin >> alphabate;

    //checking the input parameters
    for (int j=0; j<3; j++) {
        if (alphabate[j] == '1' || alphabate[j] == 'a') {
            printArray(0);
        }
        else if (alphabate[j] == '2' || alphabate[j] == 'b') {
            printArray(1);
        }
        else if (alphabate[j] == '3' || alphabate[j] == 'c') {
            printArray(2);
        }
        else {
            cout << "Error";
        }
    }

return 0;
}