Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
Debil321
0 / 0 / 0
Регистрация: 14.10.2017
Сообщений: 30
1

Заменить все положительные элементы массива на значение минимального элемента

09.11.2017, 14:25. Просмотров 764. Ответов 6
Метки нет (Все метки)

Заменить все положительные элементы целочисленного массива размера 10 на значение минимального, обязатательно с пмощью указателей
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.11.2017, 14:25
Ответы с готовыми решениями:

Заменить все положительные элементы целочисленного массива на значение минимального
Заменить все положительные элементы целочисленного массива размера 10 на...

Заменить все положительные элементы целочисленного массива на значение минимального
пожалуйста, помогите решить задачку на турбо си. заменить все...

Заменить все положительные элементы целочисленного массива размера 10 на значение минимального
Заменить все положительные элементы целочисленного массива размера 10 на...

Указатели: заменить все положительные элементы целочисленного массива на значение минимального
Заменить все положительные элементы целочисленного массива размера 10 на...

Указатели: заменить все положительные элементы целочисленного массива размера 10 на значение минимального
Заменить все положительные элементы целочисленного массива размера 10 на...

6
SlavaSokolov
170 / 134 / 105
Регистрация: 14.04.2016
Сообщений: 735
09.11.2017, 14:38 2
Лучший ответ Сообщение было отмечено Debil321 как решение

Решение

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
#include <iostream>
 
 
int main()
{
    int* size = new int;
    *size = 10;
 
    int* array = new int[*size];
 
    int* min = new int;
    *min = 0;
 
    for (int i = 0; i < *size; i++)
    {
        if (array[i] < *min)
            *min = array[i];
    }
 
    for (int i = 0; i < *size; i++)
    {
        if (array[i] > 0)
            array[i] = *min;
    }
 
    delete array;
}
Можно было сделать даже счётчики в циклах с помощью указателей, но я не стал. Если хотите, сделаю!
1
zss
Модератор
Эксперт С++
7485 / 6852 / 4326
Регистрация: 18.12.2011
Сообщений: 18,130
Завершенные тесты: 1
09.11.2017, 14:56 3
SlavaSokolov, Тогда уж так
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
int main()
{
    int* size = new int;
    *size = 10;
 
    int* array = new int[*size];
 
    int* min = new int;
    *min =  *array;
 
    for (int* p = array+1; p!= array +  *size; p++)
    {
        if ( *p < *min)
            *min = *p;
    }
 
    for (int* p = array; p!= array +  *size; p++)
    {
        if (*p > 0)
            *p = *min;
    }
 
    delete[] array;
    delete size;
    delete min;
}
1
SlavaSokolov
170 / 134 / 105
Регистрация: 14.04.2016
Сообщений: 735
09.11.2017, 14:59 4
zss,
Цитата Сообщение от Debil321 Посмотреть сообщение
обязатательно с пмощью указателей
Обязательно же с помощью указателей.
Цитата Сообщение от zss Посмотреть сообщение
for (int* p = array+1; p!= array + **size; p++)
А это интересно...
Ну я как всегда забыл прописать delete для всех элементов.
1
Fixer_84
1226 / 766 / 725
Регистрация: 30.04.2016
Сообщений: 2,530
09.11.2017, 15:01 5
Лучший ответ Сообщение было отмечено Debil321 как решение

Решение

Debil321, я сделал так:

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
#include <bits/stdc++.h>
 
using namespace std;
 
int main()
{
    const int N = 10;
    int *p, min;
    int A[N];
    p = A;
    cout << "Enter some array elements:" << "\n";
    min = INT_MAX;
    for (int i = 0; i < N; i++)
    {
        cin >> *(p + i);
        if (*(p + i) < min)
            min = *(p + i);
    }
    for (int i = 0; i < N; i++)
    {
        if (*(p + i) > 0)
            *(p + i) = min;
        cout << *(p + i) << " ";
    }
    cin.get();
    return 0;
}
1
Debil321
0 / 0 / 0
Регистрация: 14.10.2017
Сообщений: 30
09.11.2017, 22:17  [ТС] 6
SlavaSokolov, спасибо вам за решение, но я немножечко не понял, то что там ничего не воспроизводится это правильно разве?)
0
SlavaSokolov
170 / 134 / 105
Регистрация: 14.04.2016
Сообщений: 735
09.11.2017, 22:25 7
Debil321,
В 12 строке ошибка. Там надо заменить код на
C++
1
*min = array[0]
В смысле не воспроизводится? Вам вывод в консоль нужен или что?
1
09.11.2017, 22:25
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.11.2017, 22:25

Заменить все отрицательные элементы массива на значение минимального элемента
1) Задан массив из 6 действительных чисел. Заменить все элементы с...

Заменить все элементы массива с отрицательным значением на значение минимального положительного элемента
Объявить массив целых чисел и заполнить его случайными значениями с помощью...

Дан массив A[N]. Все положительные элементы уменьшить на значение минимального элемента
Здравствуйте! Помогите немного доделать вот такую задачку: ...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

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