Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
0 / 0 / 1
Регистрация: 31.10.2016
Сообщений: 13

Второй положительный элемент заменить минимальным

24.05.2017, 22:26. Показов 1366. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Второй положительный элемент заменить минимальным.
Вот код,но, он некорректно работает иногда почему-то)и я не могу заменить элемент(в коде просто меняются местами), как это сделать?
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
#include <iostream>
#include <time.h>
#include <stdlib.h>
using namespace std;
 
int mas1=0;
int p;
void fill_mas(int *mas1,int n)
{
    srand((unsigned)time(NULL));
    for(int i=0; i<n; i++)
    {
        mas1[i]=rand()%20-10;
    }
    cout<<"Массив чисел: ";
    for(int i=0; i<n; i++)
        cout<<mas1[i]<<" ";
    cout<<endl;
}
 
void poisk_min(int* a, int n)
{
    int min=0, s=0, t=0, n_min=0, x=0;
    for (int i=0; i<n; i++)
    {
        {
            if(a[i]<min)
            {
                min=a[i];
                n_min=i;
            }
        }
        {
            if(a[i]>0) s=i, x++;
            if(x==2)t=s;
        }
    }
    int tmp=a[t];
    a[t]=a[n_min];
    a[n_min]=tmp;
    cout<<"Минимальный елемент: "<<min<<"."<<endl;
}
void two_poloj(int* p, int n)
{
    int s=0, x=0, t=0;
    for(int i=0; i<n; i++)
    {
        if(p[i]>0) s=p[i], x++;
        if(x==2)t=s;
    }
    cout<<"Второй положительный элемент: "<<t<<"."<<endl;
 
}
void zamena(int* mas1, int n)
{
    int min=0, s=0, t=0, n_min=0, x=0;
    for (int i=0; i<n; i++)
    {
        {
            if(mas1[i]<min)
            {
                min=mas1[i];
                n_min=i;
            }
        }
        {
            if(mas1[i]>0) s=i, x++;
            if(x==2)t=s;
        }
    }
 
    mas1[t]=mas1[n_min];
 
}
void vuvodd(int* mas1, int n)
{
    cout<<"Масссив:"<<endl;
    for(int i=0; i<n; i++)
        cout<<mas1[i]<<" ";
    cout<<endl;
}
int main()
{
    setlocale(0,"");
    int p;
    cin>>p;
    int *mas1=new int[p];
    fill_mas(mas1,p);
   poisk_min(mas1,p);
    two_poloj(mas1,p);
    zamena(mas1,p);
 
    vuvodd(mas1,p);
    delete [] mas1;
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.05.2017, 22:26
Ответы с готовыми решениями:

Второй отрицательный элемент массива заменить минимальным
написать программу на языке с++, у которой операторы: 1) создают одномерный статистический массив из N элементов; 2) заполняют массив...

Заменить последний положительный элемент одномерного массива на второй элемент массива
#include &lt;string&gt; #include&quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;string&gt; using namespace std; ...

Заменить последний положительный элемент одномерного массива на второй элемент массива
Написать программу по заданию: заменить последний положительный элемент одномерного массива на второй элемент массива

2
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
24.05.2017, 22:58
Цитата Сообщение от Keriger Посмотреть сообщение
C++
1
2
3
int tmp=a[t];
* * a[t]=a[n_min];
* * a[n_min]=tmp;
Дык, ты их сам и меняешь. Убери все, что относится к tmp
0
 Аватар для Newus
26 / 26 / 32
Регистрация: 27.11.2016
Сообщений: 70
24.05.2017, 23:15
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#include <iostream>
#include <vector>
#include <algorithm>
 
void print(int i)
{
    std::cout << i << " ";
}
 
int main()
{
    std::vector<int> v1(10);
    int min = v1.at(0);
    int mpos;
   
    for(int i = 0;i < v1.size();i++)
    {
       v1.at(i) = -10 + rand() % 30;
    }
   
   std::cout << "Before change: " << std::endl;
   
    std::for_each(v1.begin(),v1.end(),print);
   
    std::cout << std::endl;
    std::cout << std::endl;
    
    for(int i = 0;i < v1.size();i++)
    {
       if(v1.at(i) < min)
       {
           min = v1.at(i);
           mpos = i;  
       }
    }    
     
    std::cout << "Min: " << min << std::endl;
 
    int positive;
    int npositive;
    int npos;
    std::vector<int> v2(v1);
   
     for(int i = 0;i < v2.size();i++)
     {
         if(v2.at(i) > 0)
         {
             positive = v2.at(i);
             break;
         }
     }
     
     v2.erase(std::remove(v2.begin(), v2.end(),positive),v2.end());
   
     for(int i = 0;i < v2.size();i++)
     {
         if(v2.at(i) > 0)
         {
             npositive = v2.at(i);
             npos = i;
             break;
         }
     }
    
   std::swap(v1.at(mpos),v1.at(npos + 1));
   
   
   std::cout << "Second positive: " << npositive << std::endl;
    
    std::cout << std::endl;
    std::cout << std::endl;
   
   std::cout << "After change: " << std::endl;    
   
   std::for_each(v1.begin(),v1.end(),print);
    
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.05.2017, 23:15
Помогаю со студенческими работами здесь

Заменить последний положительный элемент одномерного массива на второй элемент массива
Заменить последний положительный элемент одномерного массива на второй элемент массива С++

Заменить последний положительный элемент массива на второй элемент массива
Заменить последний положительный элемент массива на второй элемент массива. Как вывести еще раз этот же массив только с замененным числом ...

Заменить каждый положительный элемент массива на нуль
Разработайте программу, выделив в ней одну или несколько подпрограмм. Требования к составляемым подпрограммам: каждая подпрограмма...

Заменить третий положительный элемент массива на максимальный
Здравствуйте подскажите как заменить третий позитивный элемент массива на максимальный #include &lt;vcl.h&gt; #pragma hdrstop ...

Третий положительный элемент массива заменить средним арифметическим положительных элементов
Третий положительный элемент заменить среднеарифметическим значением положительных всех элементов . Сумму элементов массива ,...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru