0 / 0 / 0
Регистрация: 25.03.2017
Сообщений: 1
1

Если в массиве присутствует заданное значение - удалить его, иначе добавить в конец массива

25.03.2017, 21:04. Показов 2047. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Определить, есть ли в целочисленном массиве Q(10) заданное число Х, и если есть, то удалить его (если встречается неоднократно, то удалить все), а если нет, то добавить в конец массива.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.03.2017, 21:04
Ответы с готовыми решениями:

Определить, содержит ли массив заданное число. Если элемент не найден, то вставить его в конец массива
Если массив данных неупорядочен, то для поиска нужного элемента можно применить метод линейного...

Удалить все строки, где заданное значение присутствует
Ситуация: в листбоксе выделяем значение, это значение соответствует одинаковым значениям в столбце...

Если строка начинается на 'abc', то заменить их на 'www', иначе добавить в конец строки 'zzz'
Доброго времени суток. Есть задание : "Дана строка. Если она начинается на 'abc', то заменить их...

Если слово присутствует в строке, то удалить его
Дана строка из нескольких слов, вводимая с клавиатуры и слово, также введенное с клавиатуры. Если...

1
737 / 542 / 416
Регистрация: 17.09.2015
Сообщений: 1,601
26.03.2017, 07:53 2
Лучший ответ Сообщение было отмечено kushaa как решение

Решение

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
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
    int size = 10, *Q, i, j, x, count = 0;
    Q = malloc(size * sizeof*Q);
    if(!Q){
        fprintf(stderr, "Error allocate memory!");
        exit(1);
    }
    srand(time(NULL));
    for(i = 0; i < size; i++)
        printf("%d ", Q[i] = rand() % 20);
    putchar('\n');
    puts("Enter number:");
    while(1 != scanf("%d", &x)){
        puts("Incorrect data enter!Try again.");
        while(getchar() != '\n');
    }
    for(i = 0; i < size; i++){
        if(Q[i] == x){
            count++;
            for(j = i; j < size - 1; j++)
                Q[j] = Q[j + 1];
        }
    }
    if(count){
        size -= count;
        for(i = 0; i < size; i++)
            printf("%d ", Q[i]);
        putchar('\n');
    }
    else{
        size++;
        Q = realloc(Q, size * sizeof*Q);
        if(!Q){
            fprintf(stderr, "Error allocate memory!");
            exit(1);
        }
        for(i = 0; i < size; i++){
            if(i == size - 1)
                Q[i] = x;
            printf("%d ", Q[i]);
        }
        putchar('\n');
    }
    return 0;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.03.2017, 07:53
Помогаю со студенческими работами здесь

Дана строка. Если она начинается на 'abc', то заменить их на 'www', иначе добавить в конец строки 'zzz'
Дана строка. Если она начинается на 'abc', то заменить их на 'www', иначе добавить в конец строки...

Функция range: если заданное число от -10 до 10 исключительно, то увеличить его на 5, иначе уменьшить на 10
Доброго времени суток! Никак не могу понять что делаю неверно в коде. ПЛЖ помогите разобраться......

Перенести минимальное значение массива в его конец (получается мусор в массиве)
В общем нужно найти минимальное значение в массиве и после записать его в конец массива, сдвинув...

Методом бинарного поиска определить, содержит ли массив заданное число. Если элемент найден, то удалить его из массива
Сформировать массив А, упорядоченный по возрастанию. Методом бинарного поиска определить, содержит...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru