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

Добавить после первого четного элемента массива элемент с заданным значением - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
AnaMor
0 / 0 / 0
Регистрация: 31.05.2011
Сообщений: 6
14.06.2011, 19:19     Добавить после первого четного элемента массива элемент с заданным значением #1
Мне задали лабораторную работу, как всегда на самостоятельное изучение! Первый и второй пункт я сделала! Проблема с 3и4 пунктом. Хотелось бы разобраться!!!

1) Сформировать одномерный массив целых чисел, используя датчик случайных чисел.
2) Распечатать полученный массив.
3) Удалить элемент с заданным номером.
4) Добавить после первого четного элемента массива элемент со значением М[I-1]+2.
5) Распечатать полученный массив.

Вот мой код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream.h>
#include <conio.h>
 
int main()
{
int mas[10];
randomize();
cout<<"Massiv imeet vid: ";
for(int i = 0; i < 10; i++)
 {
  mas[i] = random(10); //заполняем
  cout << mas[i] <<" "; //выводим
 }
getch();
return 0;
}
для удаления элемента с заданным номером нужно ввести переменную???
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.06.2011, 19:19     Добавить после первого четного элемента массива элемент с заданным значением
Посмотрите здесь:

C++ Добавить после элемента массива с заданным индексом элемент со значением 100
C++ Найти сумму индекса элемент массива после первого отрицательного элемента
Добавить в однонаправленный список элемент после элемента с заданным информационным полем C++
C++ Вставить в список L после первого элемента равного x элемент со значением y
После каждого четного элемента массива вставить два элемента с тем же значением, после чего полученный массив отсортировать по убыванию C++
После каждого четного элемента массива вставить 2 элемента с тем же значением, полученный массив отсортировать C++
Найти номер первого четного элемента массива C++
Добавить после каждого четного элемента массива элемент со значением M C++
C++ Вставить элемент массива после первого чётного элемента
C++ Добавить в список элемент после элемента с заданным инф.полем [Однонаправленный список]
Удалить первый нулевой элемент массива и добавить после каждого чётного элемента особый элемент C++
C++ Добавить в список число 100 после первого четного элемента

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zuq
 Аватар для zuq
95 / 95 / 2
Регистрация: 10.04.2011
Сообщений: 256
14.06.2011, 20:16     Добавить после первого четного элемента массива элемент с заданным значением #2
Удалять наверное нужно сдвигом. То есть, на пример тебе надо удалить 3-й элемент, значит 3-й получит значение 4-го, 4-й - 5-го и т.д . M[i] = M[i+1]. Сделать это можно циклом.
tylix
68 / 55 / 6
Регистрация: 10.06.2011
Сообщений: 149
15.06.2011, 14:39     Добавить после первого четного элемента массива элемент с заданным значением #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Лишнее удалить
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
#include <ctime>
#include <cstdio>
#include <cstdlib>
#include <conio.h>
#include <cstring>
 
const int SIZE = 12; // размер массива
 
int main() {
    int mas[SIZE];
    int tmp[SIZE];
    int num;
    int ind;
 
    srand(time(NULL));
// п.1 п.2 ----------------
    for (int i = 0; i < SIZE; i++) {
        mas[i] = rand() % 100;
        printf("%3d ", mas[i]);
    }
// ------------------------
// п.3 --------------------
    printf("\nEnter num 1-%d: ", SIZE);
    scanf("%d", &num);
// проверка корректности вводимого номера элемента
    if (num < 0 || num > SIZE) {
        printf("Ne correctniy nomer");
        return 0;
    }
    num--; // из номера элемента в индекс массива
    memcpy(tmp, &mas[num+1], sizeof(int) * (SIZE - num - 1));
    memcpy(&mas[num], tmp, sizeof(int) * (SIZE - num - 1));
    mas[SIZE-1] = 0;
 
// выводим массив после удаленного элемента
    printf("\nMassiv posle udalennogo elementa\n");
    for (int i = 0; i < SIZE - 1; i++) {
        printf("%3d ", mas[i]);
    }
    printf("\n");
// ------------------------
// 4) Добавить после первого четного элемента массива элемент со значением М[I-1]+2.
// ищем первый четный элемент массива
    ind = 0;
    while ((ind < SIZE-2) && (mas[ind] % 2) && mas[ind] != 0) ind++;
    if (ind == SIZE - 2) {
        printf("Net chetnogo elementa\n");
        return 0;
    }
 
    if (ind == 0) {
        printf("Ne vozmojno vipolnit' uslovie M[I-1]\n");
        printf("Vihod za predeli indeksov\n");
        return 0;
    }
 
    num = mas[ind - 1] + 2; // то значение которое будем вставлять
    ind++;
    memcpy(tmp, &mas[ind], sizeof(int) * (SIZE - ind - 1));
    memcpy(&mas[ind + 1], tmp, sizeof(int) * (SIZE - ind - 1));
    mas[ind] = num;
 
    for (int i = 0; i < SIZE; i++) {
        printf("%3d ", mas[i]);
    }
    getch();
    return 0;
}
Yandex
Объявления
15.06.2011, 14:39     Добавить после первого четного элемента массива элемент с заданным значением
Ответ Создать тему
Опции темы

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