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

Добавить в одномерный массив N элементов, начиная с номера К - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
guTana
0 / 0 / 0
Регистрация: 14.10.2012
Сообщений: 14
29.07.2013, 15:33     Добавить в одномерный массив N элементов, начиная с номера К #1
1. Сформировать массив из n элементов с помощью датчика случайных чисел (n зада-ется пользователем с клавиатуры).
2. Распечатать полученный массив.
3. Добавить в одномерный массив N элементов, начиная с номера К

Мне нужно именно в такой интерпритации кода. Работаю в Visual Studio 2010

вот мой код
простите,если там бред,учу си недавно,но задачу очень нужно решить


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
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <stdlib.h>
#include <time.h>
#include <locale.h>
#define NN 100
void main (void)
{
int i,n,xmin,xmax,x1[NN],x2[NN],x3[NN],x4[NN],x5[NN];
setlocale(LC_ALL, "Russian");
//Формирование исходного массива
printf("\n----------Формирование исходного массива----------------\n");
printf("Введите количество элементов массива: ");
scanf("%d",&n); 
printf("\nВведите минимальную границу элементов массива: ");
scanf("%d",&xmin); 
printf("\nВведите максимальную границу элементов массива: ");
scanf("%d",&xmax); 
//int x1[n]; 
srand((unsigned int)time(NULL)); //инициализация генератора случайных чисел
printf("\nИсходный массив:\n");
for(i=0;i<n;i++) 
{x1[i]=rand()%(xmax-xmin+1)+xmin; 
printf("%d ",x1[i]);} 
 
printf("\n\nPress any key...");
_getch();
 
//Добавить N элементов, начиная с номера К
printf("\n----Добавить N элементов, начиная с номера К-----\n");
int n_dob,k,j=0; //число элементов для удаления из исходного массива
printf("\nВведите количество элементов исходного массива для добавления: ");
scanf("%d",&n_dob); 
printf("\nВведите номер элемента исходного массива с которого нужно добавить элементы: ");
scanf("%d",&k); 
int n2;
n2=n+n_dob;
 
for(i=0;i<n;i++)
if (i<k)
{x3[j]=x1[i];
printf("%d ",x3[j]); 
j++;}
else
if (i>k) 
 
{x4[j]=rand()%(xmax-xmin+1)+xmin; 
x3[j]=x4[n_dob+j];
printf("%d ",x4[j]); 
j++;}
 
else
{x3[j]=x1[i];
printf("%d ",x3[j]); 
j++;}
printf("\n\nPress any key...");
_getch();
}
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.07.2013, 15:33     Добавить в одномерный массив N элементов, начиная с номера К
Посмотрите здесь:

C++ Удаление N элементов, начиная с номера K
C++ Добавить К элементов в массив, начиная с номера N
C++ Сформировать одномерный массив В, элементами которого являются номера первых отрицательных элементов каждой строки матрицы
C++ Одномерный массив: Вывести на экран номера всех элементов больше заданного числа
C++ Pаписать в одномерный массив B все номера отрицательных элементов, а в массив C номера не отрицательных
C++ Одномерный массив.Найти номера элементов меньше -10
C++ Указатели . Удалить из одномерного массива элемент с заданным номером, добавить К элементов, начиная с заданного номера
C++ Удалить из списка элемент с заданным номером и добавить элементфы, начиная с заданного номера.
C++ Сформировать одномерный массив. Удалить из него К элементов, начиная с заданного номера, добавить элемент с заданным ключом
C++ Одномерный массив, добавить условие проверки на четность элементов массива
C++ В динамическом массиве удалить N элементов, начиная с номера K (ошибка)
C++ Как применяя erase удалить в векторе n элементов, начиная с номера k?

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5534 / 2568 / 234
Регистрация: 01.11.2011
Сообщений: 6,342
Завершенные тесты: 1
29.07.2013, 15:37     Добавить в одномерный массив N элементов, начиная с номера К #2
guTana, а не подскажете, что в данном коде от плюсов? Это чистый си.
И какие вопросы? Что именно не работает? Может быть какие-нибудь ошибки приведете.
guTana
0 / 0 / 0
Регистрация: 14.10.2012
Сообщений: 14
29.07.2013, 15:44  [ТС]     Добавить в одномерный массив N элементов, начиная с номера К #3
у меня не генерирует массив из того количества чисел, которые пользователь должен ввести с клавиатуры
и затем не дописывает остаток элементов массива
не могу понять как это записать

работает программа только 44 строки правильно,как реализовать потом я не знаю
aLarman
640 / 561 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
29.07.2013, 18:37     Добавить в одномерный массив N элементов, начиная с номера К #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
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
int main(int argc, char* argv[])
{
    srand(time(0));
    int * Arr;
    int n, N, K;
    std::cout << "Enter n \n";
    std::cin >> n;
    Arr = new int[n];
    for(int i = 0; i< n; i++)
    {
        Arr[i] = rand()% 20; // 20 - заполнение рандомными числами от 0 до 19
    }
    for(int i = 0; i< n; i++)
    {
        std::cout << Arr[i] << " ";
    }
    std::cout << std::endl;
    std::cout << "Enter N and K ";
    std::cin >> N >> K;
    if( (N+K) > n)
    {
        int * tmp = new int[N+K];
        for(int i = 0; i < N; i++)
            tmp[i] = Arr[i];
        for(int i = N; i < (N+K);i++)
        {
            std::cout << "Enter " << i-N << "-th element ";
            std::cin >> tmp[i];
        }
        delete[]Arr;
        Arr = tmp;
    }
    else
    {
        for(int i = N; i < N+K; i++)
        {
            std::cout << "Enter " << i-N << "-th element ";
            std::cin >> Arr[i];
        }
    }
    for(int i = 0; i< n; i++)
    {
        std::cout << Arr[i] << " ";
    }
    delete[]Arr;
    system("pause");
    return 0;
}
попробуйте так )
Yandex
Объявления
29.07.2013, 18:37     Добавить в одномерный массив N элементов, начиная с номера К
Ответ Создать тему
Опции темы

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