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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Psychko
0 / 0 / 0
Регистрация: 21.11.2011
Сообщений: 14
#1

массив - C++

18.12.2011, 15:43. Просмотров 424. Ответов 7
Метки нет (Все метки)

из масива D[25] создать новый массив расположив вначале отрицательные, затем положительные. Определить в каком из массивов наименьший по модулю элемент встретится первым.вывести все массивы, наименьшие значения и их индексы..... с++ help plzzz
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.12.2011, 15:43     массив
Посмотрите здесь:

Дан массив Z(15). Сформировать массив В следующим образом C++
C++ Безопасный массив (массив с контролем границ)
C++ Заданы два одномерных массива действительных чисел различных размеров. Объединить их в один массив, включив второй массив между k-м и (k+1)-м элемента
Как передать массив в массив с указателем C++
C++ дан массив. Если ввести 2 целых числа, то массив в диапазоне между этими числами приобретет максимальное значение массива
Передать массив I(10) в массив J(10) в обратной последовательности C++
Задан Массив из N и M Чисел соответственно. Получить объединенный массив, включив в него сначала элементы первого массива, а затем второго C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
soon
2537 / 1302 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
18.12.2011, 16:15     массив #2
Цитата Сообщение от Psychko Посмотреть сообщение
наименьшие значения
По модулю?

Добавлено через 26 секунд
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
#include <iterator>
#include <iostream>
#include <vector>
#include <algorithm>
 
template <class T> T gen() { return (rand() % 11 - 5); }
 
template <class T> bool isNegative(T num) { return (num < 0); }
 
template <class T> bool absMin(T a, T b) { return (abs(a) < abs(b)); }
 
int main()
{
    srand(time(NULL));
    std::vector<int> v(25);
    std::generate(v.begin(), v.end(), gen<int>);
    std::copy(v.begin(), v.end(), std::ostream_iterator<int>(std::cout, " "));
    std::cout << std::endl;
    int min = *std::min_element(v.begin(), v.end(), absMin<int>);
    int pos = std::find(v.begin(), v.end(), min) - v.begin();
    std::vector<int> res;
    for(std::vector<int>::iterator it = std::find_if(v.begin(), v.end(), isNegative<int>); it != v.end(); it = std::find_if(it, v.end(), isNegative<int>))
    {
        res.push_back(*it);
        v.erase(it);
    }
    res.insert(res.end(), v.begin(), v.end());
    std::copy(res.begin(), res.end(), std::ostream_iterator<int>(std::cout, " "));
    std::cout << std::endl;
    std::cout << "min abs = " << min << " pos1 = " << pos << " pos2 = " << std::find(res.begin(), res.end(), min) - res.begin() << std::endl;
    return 0;
}
Psychko
0 / 0 / 0
Регистрация: 21.11.2011
Сообщений: 14
19.12.2011, 06:26  [ТС]     массив #3
ммм а можно по легче плз?) а то это слишком сложно написано...
Psychko
0 / 0 / 0
Регистрация: 21.11.2011
Сообщений: 14
19.12.2011, 17:31  [ТС]     массив #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#define N 25
using namespace std;
int main()
{
    int i,c,P[N],D[N];
    for (i=0;i<N;i++)
        D[i]= -50 + 101 * rand() / RAND_MAX;
for (i = 0; i < N; i++)
 if (D[i] < 0)
{P[i]=D[i];}
for (i=0; i<N;i++)
    if (D[i] > 0)
    {P[i]=D[i];
}
for (i=0; i<N; i++)
    cout << P[i]<<endl;
       _getch();
                return 0;
}

подскажите почему не ставит вначале отрицательные , затем положительные...
absokolov
29 / 29 / 1
Регистрация: 10.05.2011
Сообщений: 120
19.12.2011, 17:40     массив #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
#include <iostream>
#include <stdlib.h>
#include <string.h>
#include <vector>
using namespace std;
 
#define N 25
 
int main()
{
       int i,c = 0,P[N],D[N];
        for (i=0;i<N;i++)
                D[i]= -50 + 101 * rand() / RAND_MAX;
for (i = 0; i < N; i++)
 if (D[i] < 0)
{P[c++]=D[i];}
for (i=0; i<N;i++)
        if (D[i] > 0)
        {P[c++]=D[i];
}
for (i=0; i<N; i++)
        cout << P[i]<<endl;
    return 0;
}
P.S. Старайтесь писать красивее!
Psychko
0 / 0 / 0
Регистрация: 21.11.2011
Сообщений: 14
19.12.2011, 18:46  [ТС]     массив #6
Определить в каком из массивов наименьший по модулю элемент встретится первым.вывести все массивы, наименьшие значения и их индексы...


а вот с этим все равно запара......
Psychko
0 / 0 / 0
Регистрация: 21.11.2011
Сообщений: 14
20.12.2011, 16:54  [ТС]     массив #7
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
48
49
50
51
#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>
#include <iomanip>
#define N 25
using namespace std;
int main()
{   
    srand((unsigned)time(NULL));
    int i, c=0, P[N], iminD,iminP, min1, min2, D[N];
    for (i=0;i<N;i++)
     D[i]= -50 + 101 * rand() / RAND_MAX;
               for (i = 0; i < N; i++)
                {       if (D[i] < 0)
                P[c++]=D[i];  
                                          }
                for (i=0; i<N;i++)          
                {       if (D[i] > 0)
                P[c++]=D[i];
                                     }
                cout << "v kakom massive naimenshiy po modylu element vstretitsa pervim?"<<endl;
                min1=D[0];             
                min2=P[0];                      
for (i=0; i<N; i++)
    if ( abs(D[i]) < min1 ) 
    {
        min1 = abs(D[i]);
        iminD = i;
    }
       
for (i=0; i<N; i++) 
    if (min2 > abs(P[i]))
    {
        min2 = abs(P[i]);
        iminP = i;
    }
 
        if ( iminD > iminP ) cout << "v massive P[i] s indeksom  "<< iminP <<endl;
        else cout<< "v massive D[i] s indeksom  "<< iminD <<endl;
        cout <<"minimalnie po modylu elementi massivov: D[i]= "<< min1 <<" ,P[i]= "<< min2 <<endl;
            
for (i=0; i<N; i++)
cout <<"D["<<i<<"]="<<D[i]<<endl;
cout <<"-------------------"<<endl;
for (i=0; i<N; i++)
 cout<<"P["<<c<<"]="<<P[i]<<endl;
       _getch();
                return 0;
}

почему выводит непонятный индекс и значения не по модулю?((
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.12.2011, 20:11     массив
Еще ссылки по теме:

C++ Задан Массив из N и M Чисел соответственно. Получить объединенный массив, включив в него сначала элементы первого массива, а затем второго
C++ Дан массив А[13], переписать его в массив B
C++ Нужно в массив А записать числители, а в массив В знаменатели
Массив: Обработать массив А, состоящий из произвольных чисел C++
C++ Массив: Задать радномно массив чисел (натуральных) от 0 до 10.

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Psychko
0 / 0 / 0
Регистрация: 21.11.2011
Сообщений: 14
20.12.2011, 20:11  [ТС]     массив #8
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
#include <iostream>
#include <conio.h>
#include <stdlib.h>
#include <time.h>
#include <iomanip>
#define N 25
using namespace std;
int main()
{   
    srand((unsigned)time(NULL));
    int i, c=0, P[N], iminD,iminP, min1, min2, D[N];
    for (i=0;i<N;i++)
     D[i]= -50 + 101 * rand() / RAND_MAX;
               for (i = 0; i < N; i++)
                {       if (D[i] < 0)
                P[c++]=D[i];  
                                          }
                for (i=0; i<N;i++)          
                {       if (D[i] > 0)
                P[c++]=D[i];
                                     }          
for (i=0; i < N; i++)
cout << "D["<< i <<"]="<< D[i] << endl;
cout <<"-------------------"<< endl;
for (c=0; c < N; c++)
 cout<<"P["<< c <<"]="<< P[c] <<endl;
 
        cout << "v kakom massive naimenshiy po modylu element vstretitsa pervim?" <<endl;
min1 = D[0];
for (i=0; i<N; i++)
{   if ( min1 > D[i]) min1 = D[i];
         iminD = i;
    }
min2 = P[0];    
for (c=0; c<N; c++) 
{   if ( min2 > P[c] ) min2 = P[c];
        iminP = c;
}
        if ( iminD > iminP ) 
            cout << "v massive P[i] s indeksom  "<< iminP <<endl;
        else cout<< "v massive D[i] s indeksom  "<< iminD <<endl;
        cout <<"D["<< iminD <<"]= "<< min1 <<" ,P["<< iminP <<"]="<< min2 <<endl;
       _getch();
                return 0;
}



почему пишет индекс 24..почему результаты не по модулю...исправте плз..а то у же ппц сижу над этим долго очень(((
Миниатюры
массив  
Yandex
Объявления
20.12.2011, 20:11     массив
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru