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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Serzik
-1 / 0 / 0
Регистрация: 13.04.2013
Сообщений: 90
#1

Вставка в начало одномерного массива - C++

26.04.2013, 22:04. Просмотров 365. Ответов 6
Метки нет (Все метки)

Добрый день

Подскажите в чём я не прав при вставке в начало массива
Вставить хочу 2 цифры - 9 в начало а остальное повинуть.

Подскажите что я не так сделал почему не получается.

Динамические массивыб вектора и STL не катит надо тупо в одномерном массиве сделать.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
mass[20] ={1,2,3,4,5};
for(int i = 0; i<sizeof(mass);i++)
{
if(mass[0]!= 9 && mass[1] != 9)
{
mass[0]= '9';
mass[1] = '9';
for(int j = 2; j<sizeof(mass);j++)
{
mass[i] = mass[j];
j++;
}
}
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.04.2013, 22:04     Вставка в начало одномерного массива
Посмотрите здесь:

C++ Отсортировать элементы массива: отрицательные – в начало массива, положительные – в конец
C++ Поместить элементы массива M в начало массива B в обратном порядке
Запись в начало массива C++
C++ Вставка в начало списка
C++ На С++ перенести в начало одномерного массива второй нулевой элемент
C++ Добавление элемента в начало массива
C++ Добавить k элементов в начало массива
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
metaluga145
243 / 244 / 20
Регистрация: 08.04.2013
Сообщений: 927
26.04.2013, 22:11     Вставка в начало одномерного массива #2
А где же объявление массива и все такое?
Serzik
-1 / 0 / 0
Регистрация: 13.04.2013
Сообщений: 90
26.04.2013, 22:15  [ТС]     Вставка в начало одномерного массива #3
C++
1
int mass[20] ={1,2,3,4,5};
Вас смутило что я инт не поставил перед названием массива?
metaluga145
243 / 244 / 20
Регистрация: 08.04.2013
Сообщений: 927
26.04.2013, 22:18     Вставка в начало одномерного массива #4
Serzik, наверное, сначала стоит подвинуть то,что есть,а потом уже вставлять,а не наоборот,как у Вас
UnsKneD
алкокодер
 Аватар для UnsKneD
153 / 149 / 11
Регистрация: 27.12.2012
Сообщений: 548
26.04.2013, 22:18     Вставка в начало одномерного массива #5
Serzik, вы не правы абсолютно во всё, для начала нужно сдвинуть массив циклически вправо на 1, затем вставить число в начало, затем снова всё сдвинуть.

Цитата Сообщение от Serzik Посмотреть сообщение
mass[20] ={1,2,3,4,5};
Это у вас вроде массив интов,
Цитата Сообщение от Serzik Посмотреть сообщение
mass[0]= '9'; mass[1] = '9';
а здесь вы присваиваете чары, что не есть гуд.

Цитата Сообщение от Serzik Посмотреть сообщение
j<sizeof(mass)
тут вы получили размер массива, но не количество его элементов, для получения количества разделите sizeof(mass) на sizeof(int)
Serzik
-1 / 0 / 0
Регистрация: 13.04.2013
Сообщений: 90
26.04.2013, 22:25  [ТС]     Вставка в начало одномерного массива #6
Немоглибы вы премерно накидать этот сдвиг.

А если я вставлю не на прямую 9 а скажем код девятки из таблицы аски?

C++
1
sizeof(mass)/sizeof(int)
так я найду реальное количество символов в моём массиве?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.04.2013, 22:36     Вставка в начало одномерного массива
Еще ссылки по теме:

C++ Напишите программу, которая выполняет неполную сортировку массива: ставит в начало массива три самых меньших
C++ Вставка в матрицу заданного одномерного массива на k-ю строку
Поиск нулевых элементов и перенос их в начало одномерного массива C++
Элементы массива, стоящие на нечётных позициях, переставить в начало массива, а на чётных - в конец C++
Вставка элемента в начало односвязного списка C++

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

Или воспользуйтесь поиском по форуму:
UnsKneD
алкокодер
 Аватар для UnsKneD
153 / 149 / 11
Регистрация: 27.12.2012
Сообщений: 548
26.04.2013, 22:36     Вставка в начало одномерного массива #7
Цитата Сообщение от Serzik Посмотреть сообщение
А если я вставлю не на прямую 9 а скажем код девятки из таблицы аски?
Тогда всё нормально)
Цитата Сообщение от Serzik Посмотреть сообщение
так я найду реальное количество символов в моём массиве?
Да, но не совсем, например A[14], тогда результат вычисления будет 14
А вот если записать int A[] = {1,0,2,3,4,5}; то результатом будет 6
C++
1
2
3
4
5
6
7
8
9
10
    int A[] = {1,0,2,3,4,5};
    
    for( int i = sizeof(A)/sizeof(int); i>=0; i--){
        A[i+1] = A[i];
    }
    *A = 0;
 
    for( int i = sizeof(A)/sizeof(int); i>=0; i--){
        printf("%d ", A[i]);
    }
Yandex
Объявления
26.04.2013, 22:36     Вставка в начало одномерного массива
Ответ Создать тему
Опции темы

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