Как мне сделать сверку данных массива, вот например я создаю два массива int nomer1[5] = {0, 1, 2, 3, 4, 5} и nomer2[5] = {2, 4, 6, 7, 8}. Теперь создаю условие в котором будет проверятся данные массивов if(nomer1 != nomer2) //не знаю правильно ли это
cout << "данные массива не похожи";
Но в моем случае данные массива не постоянные, они изменяются.
Помогите, пожалуйста!
Другие языки программирования и технологии
C++ массивы. Пожалуйста, помогите!
#include <iostream>
#include <array>
using namespace std;
typedef array<int, 5> array_5;
void print(array_5 a) { for (auto i : a) cout << ' ' << i; }
int main() {
array_5 a = { 1, 2, 3, 4, 5 };
array_5 b = { 2, 3, 4, 5, 6 };
array_5 c = { 1, 2, 3, 4, 5 };
setlocale(LC_ALL, "rus");
cout << "a[] -> "; print(a); cout << endl;
cout << "b[] -> "; print(b); cout << endl;
cout << "c[] -> "; print(c); cout << endl;
if (a == b) cout << "a[] и b[] равны\n";
else cout << "a[] и b[] не равны\n";
if (a == c) cout << "a[] и c[] равны\n";
else cout << "a[] и c[] не равны\n";
if (b == c) cout << "b[] и c[] равны\n";
else cout << "b[] и c[] не равны\n";
cin.get();
}
#include <array>
using namespace std;
typedef array<int, 5> array_5;
void print(array_5 a) { for (auto i : a) cout << ' ' << i; }
int main() {
array_5 a = { 1, 2, 3, 4, 5 };
array_5 b = { 2, 3, 4, 5, 6 };
array_5 c = { 1, 2, 3, 4, 5 };
setlocale(LC_ALL, "rus");
cout << "a[] -> "; print(a); cout << endl;
cout << "b[] -> "; print(b); cout << endl;
cout << "c[] -> "; print(c); cout << endl;
if (a == b) cout << "a[] и b[] равны\n";
else cout << "a[] и b[] не равны\n";
if (a == c) cout << "a[] и c[] равны\n";
else cout << "a[] и c[] не равны\n";
if (b == c) cout << "b[] и c[] равны\n";
else cout << "b[] и c[] не равны\n";
cin.get();
}
В Си такое не прокатывает. Можно взять указатели и сравнить участки памяти.
Есть. Даже с такими массивами и в старом стандарте, а не вектора и array из C++ v11. Пример - первые 2 сравнения на memcmp (функция C из string.h/cstring), вторые 2 на equal (С++ из algorithm)
#include < iostream >
#include < cstring >
#include < algorithm >
using namespace std;
int main() {
const size_t n = 5;
int nomer1[n] = {0, 1, 2, 3, 4};
int nomer2[n] = {2, 4, 6, 7, 8};
int nomer3[n] = {0, 1, 2, 3, 4};
if (memcmp(&nomer1, &nomer2, sizeof(int)*n)==0)
cout << "Equal 1 & 2 by memcmp" << endl;
if (memcmp(&nomer1, &nomer3, sizeof(int)*n)==0)
cout << "Equal 1 & 3 by memcmp" << endl;
if (equal(nomer1, nomer1 + n, nomer2))
cout << "Equal 1 & 2 by equal" << endl;
if (equal(nomer1, nomer1 + n, nomer3))
cout << "Equal 1 & 3 by equal" << endl;
return 0;
}
Соотв
Equal 1 & 3 by memcmp
Equal 1 & 3 by equal
Закинул на IdeOne:
http://ideone.com/jw76Gn
#include < iostream >
#include < cstring >
#include < algorithm >
using namespace std;
int main() {
const size_t n = 5;
int nomer1[n] = {0, 1, 2, 3, 4};
int nomer2[n] = {2, 4, 6, 7, 8};
int nomer3[n] = {0, 1, 2, 3, 4};
if (memcmp(&nomer1, &nomer2, sizeof(int)*n)==0)
cout << "Equal 1 & 2 by memcmp" << endl;
if (memcmp(&nomer1, &nomer3, sizeof(int)*n)==0)
cout << "Equal 1 & 3 by memcmp" << endl;
if (equal(nomer1, nomer1 + n, nomer2))
cout << "Equal 1 & 2 by equal" << endl;
if (equal(nomer1, nomer1 + n, nomer3))
cout << "Equal 1 & 3 by equal" << endl;
return 0;
}
Соотв
Equal 1 & 3 by memcmp
Equal 1 & 3 by equal
Закинул на IdeOne:
http://ideone.com/jw76Gn
#define N 5 /*размер*/
arr0[N] = /*... бла бла*/
arr1[N] = /*... бла бла*/
int i = 0;
for(; i < N; i++)
{
if(arr0[i] != arr1[i])
{
cout << "Не совпадают" << '\n';
break;
}
}
Если размерность разная и нужно сравнить первые данные, то
for(i = 0; i < _минимальная_размерность; i++)
_минимальная_размерность:
int arr0[Одна размерность];
int arr1[вторая размерность];
int mlen = sizeof(arr1) > sizeof(arr0) ? sizeof(arr0)/sizeof(int) : sizeof(arr1)/sizeof(int);
arr0[N] = /*... бла бла*/
arr1[N] = /*... бла бла*/
int i = 0;
for(; i < N; i++)
{
if(arr0[i] != arr1[i])
{
cout << "Не совпадают" << '\n';
break;
}
}
Если размерность разная и нужно сравнить первые данные, то
for(i = 0; i < _минимальная_размерность; i++)
_минимальная_размерность:
int arr0[Одна размерность];
int arr1[вторая размерность];
int mlen = sizeof(arr1) > sizeof(arr0) ? sizeof(arr0)/sizeof(int) : sizeof(arr1)/sizeof(int);
берёшь цикл который равен числу элементов массива. В нем сравниваешь элементы и усё.
Похожие вопросы
- пожалуйста, напишите мне программу этого вопроса в C ++.пожалуйста помогите. Создать динамический массив из N чисел.
- помогите пожалуйста сделать мне практическую по массивам, пожалуйста!!!
- Задача на массивы двумерные помогите доделать на C#,код прикрепляю и задачу
- Сортировка массива (Паскаль) помогите пожалуйста
- Информатика. Программирование. Обработка массивов данных. Помогите составить алгоритм и прог. код к нему.
- C++ массив array в классе
- Пожалуйста помогите разобраться с даним кодом C++. Тема : Односвязание списки
- Задачи на массив паскаль, помогите пожалуйста
- visual c++ объясните, пожалуйста, что означает каждая строчка. задание: найти число различных элементов в массиве
- как в C++ массив чисел преобразовать в строку