С Новым годом! Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.98/60: Рейтинг темы: голосов - 60, средняя оценка - 4.98
 Аватар для KeTTLeR
0 / 0 / 0
Регистрация: 15.12.2009
Сообщений: 28

Удалить все элементы массива, совпадающие с его минимальным значением

17.03.2010, 20:10. Показов 11159. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите как удалить все элементы массива совпадающие с его минимальным значением?!

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 <stdio.h>
#include <conio.h>
#include <stdlib.h>
int main(void)
{
int i,k,min;
int a[100];
clrscr();
///////////////////Массив случайных чисел////////////////////////////
printf("Vvedite kolichestvo elemntov massiva:\t");
scanf("%d",&k);
if (k>100) printf("Error!!! Kolichestvo elementov massiva ne bolshe 100");
else
randomize();
printf("\n");
for(i=0; i<k; i++)
{
a[i]=random(100);
printf("%d\t", a[i]);
}
//////////Нахождение минимального значения среди всех элементов массива/////////
min=0;
for (i=1; i<k; i++)
 if (a[i]<a[min])a[min]=a[i];
getch();
return 0;
}
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.03.2010, 20:10
Ответы с готовыми решениями:

Удалить из массива все элементы, совпадающие с его минимальным значением
Сформировать одномерный массив целых чисел, используя датчик случайных чисел, и распечатать массив. Удалить из массива все элементы,...

Массив (Удалить все элементы, совпадающие с его минимальным значением)
Помогите с программой код вроде есть, но не работает: Сформировать одномерный массив целых чисел, используя датчик случайных чисел. ...

Сформировать одномерный массив целых чисел, удалить из массива все элементы совпадающие с минимальным значением...
1)Необходимо сформировать одномерный массив целых чисел. 2)Затем удалить из массива все элементы совпадающие с минимальным значением....

6
1261 / 799 / 108
Регистрация: 16.09.2009
Сообщений: 2,010
17.03.2010, 20:13
Могут предложить обнуление тех значений которые совпадают с минимальным.
0
 Аватар для KeTTLeR
0 / 0 / 0
Регистрация: 15.12.2009
Сообщений: 28
17.03.2010, 20:15  [ТС]
Цитата Сообщение от Genius Ignat Посмотреть сообщение
Могут предложить обнуление тех значений которые совпадают с минимальным.
нужно не обнуление, а именно удаление
0
Быдлокодер
 Аватар для Darky
512 / 298 / 85
Регистрация: 22.11.2009
Сообщений: 892
18.03.2010, 11:11
Удалить элементы из массива нельзя.
0
Эксперт С++
 Аватар для fasked
5045 / 2624 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 5
18.03.2010, 11:15
создать новый массив и перенести в него все нужные значения, исходный массив удалить
0
 Аватар для KeTTLeR
0 / 0 / 0
Регистрация: 15.12.2009
Сообщений: 28
18.03.2010, 11:21  [ТС]
Цитата Сообщение от fasked Посмотреть сообщение
создать новый массив и перенести в него все нужные значения, исходный массив удалить
Напиши, пожалуйста, как это сделать!
0
Эксперт С++
 Аватар для fasked
5045 / 2624 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 5
18.03.2010, 12:11
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

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
#include <iostream>     // for std::cout 
#include <algorithm>    // for std::copy, std::min_element
#include <iterator>     // for output arrays
#include <cstdlib>  // for rand()
 
/*
    Создание нового массива, не включающего минимальные значения исходного
*/
 
int main()
{
    // Размер исходного массива 
    int const a_size = 10;
    // Выделение памяти под исходнйы массив
    int * a = new int [a_size];
    // Заполнение исходного массива случайными значениями
    for(int i = 0; i < a_size; ++i)
        a[i] = rand() % 9 + 1;
    
    
    // Вывод массива на экран
    std::cout << "array a: ";
    std::copy(a, a + a_size, std::ostream_iterator<int>(std::cout, " ")); 
    std::cout << std::endl;
    
    
    // Поиск минимального значения в массиве
    int min = *std::min_element(a, a + a_size);
    std::cout << "min in a: " << min << std::endl;
    
    // Расчет размера для нового массива.
    // Счетчик b_size увеличивается, если текущий элемент массива А не является минимальным
    // Обратная запись приводит к аналогичному результату.
    
    int b_size = 0;         //  int b_size = a_size;
    for(int i = 0; i < a_size; ++i) //  for(int i = 0; i < a_size; ++i)
        if(a[i] != min)     //      if(a[i] == min)
            ++b_size;   //          --b_size;
            
    // Выделение памяти под новый массив и его заполнение
    int * b = new int[b_size];
    for(int i = 0, j = 0; i < a_size; ++i)
        if(a[i] != min)
            b[j++] = a[i];
    
    // Освобождение памяти из под исходного массива
    delete[] a;
    
    // Вывод нового массива
    std::cout << "array b: ";
    std::copy(b, b + b_size, std::ostream_iterator<int>(std::cout, " "));
    std::cout << std::endl;
    
    // Память освобождать надо всегда!
    delete [] b;
}
Добавлено через 13 минут
Версия для Си
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
#include <stdlib.h>
#include <stdio.h>
 
/*
    Создание нового массива, не включающего минимальные значения исходного
*/
 
// Заполнение массива случайными значениями
void random(int * a, int size)
{
    while(size--)
        *a++ = rand() % 9 + 1;
}
// Вывод массива на экран
void output(int * a, int size)
{
    while(size--)
        printf("%d ", *a++);
    printf("\n");
}
// Поиск минимального значения в массиве
int minimum(int * a, int size)
{
    int m = *a;
    while(size--)
    {
        if(*a < m)
            m = *a;
        a++;
    }
    return m;
}
 
int main()
{
    int a_size = 10,    // Размер исходного массива 
        i = 0, j = 0;   // Счетчики
 
        
    // Выделение памяти под исходный массив
    int * a = (int * )malloc(sizeof(int) * a_size);
    // Заполнение исходного массива случайными значениями
    random(a, a_size);  
    // Вывод массива на экран
    output(a, a_size);
 
    // Поиск минимального значения в массиве
    int min = minimum(a, a_size);
    printf("min in a: %d\n", min);
    
    // Расчет размера для нового массива.
    // Счетчик b_size увеличивается, если текущий элемент массива А не является минимальным
    // Обратная запись приводит к аналогичному результату.
    int b_size = 0;         //  int b_size = a_size;
    for(i = 0; i < a_size; ++i)     //  for(int i = 0; i < a_size; ++i)
        if(a[i] != min)     //      if(a[i] == min)
            ++b_size;   //          --b_size;
            
    // Выделение памяти под новый массив и его заполнение
    int * b = (int * )malloc(sizeof(int) * b_size);
    for(i = 0, j = 0; i < a_size; ++i)
        if(a[i] != min)
            b[j++] = a[i];
    
    // Освобождение памяти из под исходного массива
    free(a);
    
    // Вывод нового массива
    output(b, b_size);
    
    // Память освобождать надо всегда!
    free(b);
}
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.03.2010, 12:11
Помогаю со студенческими работами здесь

Удалить из массива все элементы, совпадающие с минимальным
здравствуйте) у меня такой вопрос. я сформировала массив. мне нужно в нём все элементы, совпадающие с миним. значением удалить.. и...

Нужно найти элемент с минимальным значением и заменить его значением все отрицательные элементы массива
Написать алгоритм решения следующей задачи Задан масив K. Нужно найти элемент с минимальным значением и заменить его значением все...

Удалить из одномерного массива все элементы, совпадающие с его начальным элементом
Удалить из одномерного массива все элементы, совпадающие с его начальным элементом, используя динамическое выделение памяти. Элементы...

Стеки: удалить все элементы с минимальным по модулю значением
В заданном стеке найти минимальный по абсолютному значению элемент и удалить все элементы с таким значением. (Искать, перекладывать в...

В массиве все отрицательные элементы заменить минимальным значением массива, а положительные - максимальным
В двумерном массиве целых чисел все отрицательные элементы заменить минимальным значением массива, а положительные - максимальным. P.S...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru