создать новый вектор С который будет содержать нечетные элементы массивов А и В - это я сделала, а записать в массив d нечетные элементы массива А которых нет В - НЕ ПОЛУЧАЕТСЯ!!! ОБЪЯСНИТЕ ПОЖАЛУЙСТА!!!!
a={7,4,15,-3,4,10,17,28,101}
b={7,-1,-3,16,23,27,28,45,10,-2,0,1,45,48,49,50}
#include
#include
#include
#include
using namespace std;
//Прототип функции для записи вектора в файл
void wrightf(ofstream & f, int x[], int n, char name[]);
//Прототип функции для чтения вектора из файла и вывод его на монитор
void outputv(ifstream & fin, int x[], int n, char name[]);
//Главная функция
int main()
{
setlocale(LC_ALL, "rus");
/*Объявление потока чтения из файла, Oбъявление потока в записи в файл, Oбъявление массива для имени файла*/
ofstream f1;
ifstream f2;
int a[9]; int b[16]; int c[25]; int d[25];
char str[100];
//Записываем массив в файл имя которого вводится с клавиатуры
wrightf(f1, a, 9, str);
//Чтение вектора из файла и вывод на монитор
cout << "\n чтение вектора а \n" << endl;
outputv(f2, a, 9, str);
//Записываем массив в файл имя которого вводится с клавиатуры
wrightf(f1, b, 16, str);
//Чтение вектора из файла и вывод на монитор
cout << "\n чтение вектора в \n" << endl;
outputv(f2, b, 16, str);
//Вычисление нечетных координат a для с
int j = 0;
for (int i = 0; i < 9; i++)
{
if (a[i] % 2 != 0)
{
c[j] = a[i];
j++;
}
}
//Вычисление нечетных координат b для с
for ( int i = 0; i < 16; i++)
{
if (b[i] % 2 != 0)
{
c[j] = b[i];
j++;
}
}
//Вычисление нечетных координат a для d
int z = 0;
for (int i = 0; i < 9; i++)
{
if (a[i] % 2 != 0)
{
d[z] = a[i];
z++;
}
}
//Вычисление нечетных координат b для d
for (int i = 0; i < 16; i++)
{
if (b[i] % 2 != 0)
{
d[z] = b[i];
z++;
}
}
//Вывод
for (int i = 0; i < j; i++)
{
if (i % 7 == 0) cout << endl;
cout << setw(10) << c[i];
}
cout << endl;
}
//Определение функции для записи в файл
void wrightf(ofstream & f, int x[], int n, char name[])
{
//Ввод имени файла для записи
cout << "\n ввести имя файла для записи: ";
cin >> name;
//Открываем файл для записи
f.open(name);
//Проверка упешности открытия файла
if (!f.is_open())
{
cout << "\n ошибки открытия \n";
exit(1);
}
//Читаем массив с клавиатуры и записываем в файл
for (int i = 0; i < n; i++)
{//Читаем с клавиатуры
cout << "\n x[" << i << "]=";
cin >> x[i];
//Запись в файл
f << setw(10) << x[i];
if (i % 8 == 0)f << endl;
}
f.close();
}
//Определение функции для чтения из файла и вывода на монитор
void outputv(ifstream & f, int x[], int n, char name[])
{
cout << "\n вывести имя файла для чтения: ";
cin >> name;
f.open(name);
if (!f.is_open())
{
cout << "\n ошибка";
exit(1);
}
for (int i = 0; i < n; i++)
{
f >> x[i];
if (i % 7 == 0)cout << endl;
cout << setw(10) << x[i];
}
//Закрываем файл
f.close();
}
Другие языки программирования и технологии
ПОМОГИТЕ, ДОБРЫЕ ЛЮДИ!!! Язык С++, записать в массив d нечетные элементы массива А которых нет в В - НЕ ПОЛУЧАЕТСЯ
а записать в массив d нечетные элементы массива А которых нет В - НЕ ПОЛУЧАЕТСЯ!!! ОБЪЯСНИТЕ ПОЖАЛУЙСТА!!!!
1. находишь нечетный элемент в массиве А
2. проверяешь наличие такого же в массиве В
3. если отсутствует - пишешь в массив д
4. циклишься
1. находишь нечетный элемент в массиве А
2. проверяешь наличие такого же в массиве В
3. если отсутствует - пишешь в массив д
4. циклишься
#include "iostream"
#include "vector"
#include "algorithm"
using namespace std;
int main(){
vector< int> a={7,4,15,-3,4,10,17,28,101};
vector< int> b={7,-1,-3,16,23,27,28,45,10,-2,0,1,45,48,49,50};
vector< int> c,d;
for(int i:a)if(i&1)c.push_back(i);
for(int i:b)if(i&1)c.push_back(i);
for(int&i:a)if(i&1 && find(b.begin(),b.end(),i)==b.end())d.push_back(i);
for(int v:c)cout<< v<<' '; cout<< endl;
for(int v:d)cout<< v<<' '; cout<< endl;}
или то же без векторов
#include "iostream"
#include "algorithm"
using namespace std;
int main(){
int a[]={7,4,15,-3,4,10,17,28,101},na=sizeof a/sizeof *a;
int b[]={7,-1,-3,16,23,27,28,45,10,-2,0,1,45,48,49,50},nb=sizeof b/sizeof *b;
int c[na+nb],d[na],k=0,m=0;
for(int i:a)if(i&1)c[k++]=i; for(int i:b)if(i&1)c[k++]=i;
for(int i:a)if(i&1 && find(b,b+nb,i)==b+nb)d[m++]=i;
for(int v=0;v< k;v++)cout<< c[v]<<' '; cout<< endl;
for(int v=0;v< m;v++)cout<< d[v]<<' '; cout<< endl;}
или то же без algorithm
#include "iostream"
using namespace std;
bool find(int a[],int n,int j){
bool b=false; for(int i=0;i< n;i++)if(a[i]==j)b=true; return b;}
int main(){
int a[]={7,4,15,-3,4,10,17,28,101},na=sizeof a/sizeof *a;
int b[]={7,-1,-3,16,23,27,28,45,10,-2,0,1,45,48,49,50},nb=sizeof b/sizeof *b;
int c[na+nb],d[na],k=0,m=0;
for(int i:a)if(i&1)c[k++]=i; for(int i:b)if(i&1)c[k++]=i;
for(int i:a)if(i&1 && !find(b,nb,i))d[m++]=i;
for(int v=0;v< k;v++)cout<< c[v]<<' '; cout<< endl;
for(int v=0;v< m;v++)cout<< d[v]<<' '; cout<< endl;}
#include "vector"
#include "algorithm"
using namespace std;
int main(){
vector< int> a={7,4,15,-3,4,10,17,28,101};
vector< int> b={7,-1,-3,16,23,27,28,45,10,-2,0,1,45,48,49,50};
vector< int> c,d;
for(int i:a)if(i&1)c.push_back(i);
for(int i:b)if(i&1)c.push_back(i);
for(int&i:a)if(i&1 && find(b.begin(),b.end(),i)==b.end())d.push_back(i);
for(int v:c)cout<< v<<' '; cout<< endl;
for(int v:d)cout<< v<<' '; cout<< endl;}
или то же без векторов
#include "iostream"
#include "algorithm"
using namespace std;
int main(){
int a[]={7,4,15,-3,4,10,17,28,101},na=sizeof a/sizeof *a;
int b[]={7,-1,-3,16,23,27,28,45,10,-2,0,1,45,48,49,50},nb=sizeof b/sizeof *b;
int c[na+nb],d[na],k=0,m=0;
for(int i:a)if(i&1)c[k++]=i; for(int i:b)if(i&1)c[k++]=i;
for(int i:a)if(i&1 && find(b,b+nb,i)==b+nb)d[m++]=i;
for(int v=0;v< k;v++)cout<< c[v]<<' '; cout<< endl;
for(int v=0;v< m;v++)cout<< d[v]<<' '; cout<< endl;}
или то же без algorithm
#include "iostream"
using namespace std;
bool find(int a[],int n,int j){
bool b=false; for(int i=0;i< n;i++)if(a[i]==j)b=true; return b;}
int main(){
int a[]={7,4,15,-3,4,10,17,28,101},na=sizeof a/sizeof *a;
int b[]={7,-1,-3,16,23,27,28,45,10,-2,0,1,45,48,49,50},nb=sizeof b/sizeof *b;
int c[na+nb],d[na],k=0,m=0;
for(int i:a)if(i&1)c[k++]=i; for(int i:b)if(i&1)c[k++]=i;
for(int i:a)if(i&1 && !find(b,nb,i))d[m++]=i;
for(int v=0;v< k;v++)cout<< c[v]<<' '; cout<< endl;
for(int v=0;v< m;v++)cout<< d[v]<<' '; cout<< endl;}
Мда. Тяжело Вам без STL. Так-то можно в одну строку сделать...
#include < iostream >
#include < vector >
#include < algorithm >
using namespace std;
int main() {
vector a< int >={7,4,15,-3,4,10,17,28,101};
vector b< int >={7,-1,-3,16,23,27,28,45,10,-2,0,1,45,48,49,50};
vector c< int >;
copy_if(a.begin(), a.end(), back_inserter(c),
[&](const auto& v) {
return (v&1) && find(b.begin(), b.end(), v)==b.end();
}
);
for(const auto& v : c) cout << v << endl;
return 0;
}
//есс-но можно было использовать set и set_difference и sort/binary_search,
//но на относительно небольших объемах сойдет + в одну строку =)
https://www.ideone.com/iTxwEV
Если не хочется STL и по коду - сделайте сначала функцию поиска элемента в массиве. Сразу легче станет.
Пишите в комменты, если что - попробую объяснить.
#include < iostream >
#include < vector >
#include < algorithm >
using namespace std;
int main() {
vector a< int >={7,4,15,-3,4,10,17,28,101};
vector b< int >={7,-1,-3,16,23,27,28,45,10,-2,0,1,45,48,49,50};
vector c< int >;
copy_if(a.begin(), a.end(), back_inserter(c),
[&](const auto& v) {
return (v&1) && find(b.begin(), b.end(), v)==b.end();
}
);
for(const auto& v : c) cout << v << endl;
return 0;
}
//есс-но можно было использовать set и set_difference и sort/binary_search,
//но на относительно небольших объемах сойдет + в одну строку =)
https://www.ideone.com/iTxwEV
Если не хочется STL и по коду - сделайте сначала функцию поиска элемента в массиве. Сразу легче станет.
Пишите в комменты, если что - попробую объяснить.
Похожие вопросы
- Помогите с массивами! Найти и вывести на экран сумму нечётных элементов массива и количество отрицательных.
- Вычислить сумму нечетных элементов в программа С++ .Через статический и динамический массив! Вот я сам написал проверьте
- Язык Си: В одномерном массиве, состоящем из n вещественных элементов, вычислить: номер максимального по модулю элемента
- Помогите !!!С++Работа с одномерными и двумерными массивами. В каждой строке матрицы F(k, k) элемент. лежащий на главной
- Дан двумерный массив А [7,8], заполненный случайным образом. Заменить нечетные элементы массива на число 0 СРОЧНОО ГАЙСЫ
- Help me!Удалить элементы кратные 2. Добавить после каждого нечетного элемента массива элемент со значением 0. си++
- C# Дан массив размера N. Найти 2 элемента массива, сумма которых наиболее близка к максимуму массива и поменять
- Как удалить нулевые элементы из массива C++. Помогите написать код для того чтобы из массива удалить все нулевые элементы
- Помогите пожалуйста решить задачи по информатике, одномерные массивы. Си шарп. Очень срочно. Пожалуйста!!!!
- Помогите сделать лабораторную работу по теме "Одномерные массивы" [C++]
{
1. ..вставляемы вышеописанные пункты
2. ..
3. ..
}