Уважаемые программисты, пожалуйста, помогите решить такую вот задачку!
Задача:
Даны два массива натуральных чисел A(m) и B(n). Найти наибольший элемент в массиве A, которого нету в массиве B.
Заранее, большое спасибо!
C++, массивы
Код: Выделить всё
#include <iostream>
using namespace std;
void main()
{
const int len_a=5,len_b=5; //размерность массивов
int mas_a [len_a]={1,2,5,4,6};
int mas_b [len_b]={5,6,3,7,2};
int i,k;
for(i=0,k=0;i<len_a-1;i++) //сортировка массива А по убыванию
{
k=i;
for(int j=i+1;j<len_a;j++)
if(mas_a[j]>mas_a[k])k=j;
int temp=mas_a[k];
mas_a[k]=mas_a[i];
mas_a[i]=temp;
}
bool fl; //флаг указывает было совпадение элементов
for(i=0;i<len_a;i++) //берем первый элемент массива А (т.к. он самый большой потому чтомассив отсортирован)
{ //сравниваем его поочередно с элементами массива Б
fl=0;
for(int j=0;j<len_b;j++) //перебор элементов массива Б
{
if(mas_a[i]==mas_b[j]) // сравниваем элементы
{
fl=1; //указываем что рассматриваемые эл-ты совпали
break; //выходим из цикла выборки эл-тов массива Б
}
}
if (fl==0) break; //если мы перебрали все эл-ты массива Б и не совпадений
//не обнаруженно то мы нашли наше число и выходим из
//цикла выборки эл-тов массива А
}
if(fl)cout<<"not find"<<endl; //если флаг==1 значит все элементы массива А присутствовали в массиве Б
else cout<<"find "<<mas_a[i]<<endl; // если флаг==0 значит элемент по индексу и есть искомое
cin.get(); //нажми ENTER
}
эх! молодость!

А если использовать STL, то будет понятнее и проще

Код: Выделить всё
#include"iostream"
#include "algorithm"
using namespace std;
void main()
{
const int len_a=5,len_b=7; //размерность массивов
int mas_a [len_a]={1,2,5,4,6};
int mas_b [len_b]={5,6,3,7,2,10,12};
//для работы алгоритма set_difference, массивы должны быть отсортированы
sort(mas_a,mas_a+len_a);
sort(mas_b,mas_b+len_b);
int mas_result[len_a];//результирующий массив,
// set_difference поместит в результирующий массив mas_result все элементы mas_a, не встречающиеся в mas_b
// и вернёт указатель на ячейку за последним значением в результирующем массиве.
// поскольку mas_result будет отсортирован, то нужное нам значение будет в предыдущей ячейке
cout<<"Result: "<<*(set_difference(mas_a, mas_a+len_a,mas_b,mas_b+len_b,mas_result)-1)<<endl;
}
Не хочу создавать новую тему и поэтому спрошу в этой. Помогите написать программу в С++ (желательно с комментариями что делает каждая строка если не затруднит) пропустил по болезни почти всё начало изучение С++ а с преподом не оч хорошие отношения пытался разобраться сам вроде все команды по отдельности понятны, а собрать в общую кучу не могу=(
собственно сама программа
Дан массив А(5 х 5). Определить сколько нулевых элементов находится в столбце с заданным номером.
Заранее спасибо.
собственно сама программа
Дан массив А(5 х 5). Определить сколько нулевых элементов находится в столбце с заданным номером.
Заранее спасибо.