Форум программистов, компьютерный форум CyberForum.ru

массивы - C++

Восстановить пароль Регистрация
 
Лёха_Брест
0 / 0 / 0
Регистрация: 27.01.2010
Сообщений: 18
01.02.2011, 20:01     массивы #1
Даны два массива.Найти наименшее среди тех элементов первого массива,которые не входят во второй массив .
заранее благодарю
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.02.2011, 20:01     массивы
Посмотрите здесь:

Массивы. C++
C++ массивы
Массивы C++
Массивы C++
C++ массивы
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
programmer_c
1 / 1 / 0
Регистрация: 31.01.2011
Сообщений: 10
01.02.2011, 21:58     массивы #2
Код
//a,b - эти массивы и они инициализированы
//a_len, b_len - длины этих массивов соответственно

bool was_min = false;
int min;
bool is_in_b;
for (int i=0; i<a_len; ++i) {
  is_in_b = false;
  for (int j=0; j<b_len; ++j) {
    if (a[i]==b[j]) {
      is_in_b = true;
      break;
    }  
  }
  if (!is_in_b && (!was_min || a[i]<min)) {
    was_min = true;
    min = a[i];
  }
}
if (was_min) {
  count << "Минимум: " << min;
} else {
  count << "Первый массив пуст, либо все его элементы содержатся во втором, минимум искать не из чего";
}
count << endl;
Поправьте если где не прав. Такое в уме решается, как и было сделано выше.
igorrr37
 Аватар для igorrr37
1593 / 1221 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 7
01.02.2011, 22:25     массивы #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include<iostream>
#include<algorithm>
using namespace std;
 
int main(){
    int masa[]={5,2,3,4,8,6,7,1};
    int masb[]={-2,-2,8,2,3,1,4,5};
    int res[sizeof(masa)/sizeof(int)];
    int *enda=masa+sizeof(masa)/sizeof(int);
    int *endb=masb+sizeof(masb)/sizeof(int);
    sort(masa, enda);
    sort(masb, endb);
    auto it=set_difference(masa, enda, masb, endb, res);
    cout<<*min_element(res, it);
}
grrrrr
 Аватар для grrrrr
45 / 45 / 7
Регистрация: 21.04.2009
Сообщений: 265
02.02.2011, 10:48     массивы #4
Лёха_Брест, Нужно отсортировать оба массива, потом сравниваешь их минимумы.
NNN777
299 / 157 / 19
Регистрация: 27.02.2010
Сообщений: 317
02.02.2011, 11:09     массивы #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <iostream>
#include <time.h>
using namespace std;
void sort (int *b, int r)
{
    int i, j, t;
    for(i=0; i<r; i++)
            for(int j=r-1; j>i; j--)
                if(b[j-1] > b[j])
                {
                    t=b[j-1];
                    b[j-1]=b[j];
                    b[j]=t;
                }
}
int main()
{
    srand(time(NULL));
    int n;
    cout<<"Vvedite n: ";
    cin>>n;
    int *a= new int [n], *b= new int [n], i;
    for (i=0; i<n; i++) 
    {
        a[i]=rand()%10;
        b[i]=rand()%10;
    }
    cout<<"Massiv a: \n";
    for (i=0; i<n; i++) 
        cout<<a[i]<<" ";
    cout<<"\nMassiv b: \n";
    for (i=0; i<n; i++) 
        cout<<b[i]<<" ";
    sort (a, n);
    sort (b, n);
 
    i=0;
    while (a[i]==b[i])
        i++;
    cout<<"\nmin iz a: ";
    cout<<a[i];
 
    delete [] a;
    delete [] b;
 
    return 0;
}
Yandex
Объявления
02.02.2011, 11:09     массивы
Ответ Создать тему
Опции темы

Текущее время: 18:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru