Я пробовал это сделать, но не могу понять, как это сделать с 2D C++
Напишите программу на языке C++, которая считывает двумерный целочисленный массив из файла "data.txt". Файл содержит размер строки и столбца, а также данные массива. Теперь считайте целочисленный массив от пользователя. Ваша задача состоит в том, чтобы найти массив ID в 2D массиве, если массив ID присутствует в 2D массиве return true else false.
Пример 1
data.txt
4 4
11 12 13 14
25 26 27 28
39 30 31 32
43 44 45 46
Массив: 25 26 27 28
Правда
Пример 2
data.txt
4 4
11 12 13 14
25 26 27 28
39 30 31 32
43 44 45 46
Массив: 13 14 25 26
Правда
Пример 3
data.txt
4 4
11 12 13 14
25 26 27 28
39 30 31 32
43 44 45 46
Массив: 13 15 64 45
Ложный
Что я уже пробовал:
#include<iostream> #include<fstream> using namespace std; bool Find_1D_into_2D(int **p, int q, int r) { int *Arr = new int[q], i = 0; bool Found = true; cout << "Enter Elenments of 1D array to find:\n"; for(; i < q; i++) { cin >> Arr[i]; } for(int j = 0,l=0; j < q; j++) { for(int k = 0; k < r; k++) { Found = false; if(p[j][k]==Arr[l]) { Found = true; l++; } else { Found = false; l = 0; } } if(Found&&l == i) { break; } } return Found; } int main() { int Row = 0, Column = 0; ifstream Read("Sample.txt"); Read >> Row >> Column; Read.close(); int **arr = new int *[Row] {}; for(int i = 0; i < Row; i++) { arr[i] = new int[Column] {}; } cout << "Enter Elements of 2D array: " << endl; for(int i = 0; i < Row; i++) { for(int j = 0; j < Column; j++) { cin >> arr[i][j]; } } if(Find_1D_into_2D(arr, Row, Column)) { cout << "True"; } else { cout << "False"; } cout << endl; return 0; }
Richard MacCutchan
Вы должны сказать нам, в чем проблема (снова). Если вы не знаете, как создать 2D-массив, есть много примеров, которые Google найдет для вас. Если это что - то другое, то нам нужны детали. Кстати, я не совсем понимаю, почему вы начали новый вопрос, когда еще не закончили работу над ним. Система управления аукционами | C++ | функции, указатели, динамические или без утечки памяти[^].
NaumanMalik
он должен читать строку только из прямого направления, а не из столбца... любить
11 12 13 14
15 16 17 18
19 20 21 22
23 24 25 26
1D ARR: 11 12 13 14 TRUE
если я ввожу 1D массив: 13 14 из первой строки и 15 16 из второй строки, но они находятся друг за другом в строке, как 13 14 15 16 в 2D массиве: тогда это правда