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

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

Восстановить пароль Регистрация
 
Serzik
-1 / 0 / 0
Регистрация: 13.04.2013
Сообщений: 90
26.04.2013, 22:04     Вставка в начало одномерного массива #1
Добрый день

Подскажите в чём я не прав при вставке в начало массива
Вставить хочу 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     Вставка в начало одномерного массива
Посмотрите здесь:

Отрицательные элементы массива А(N) переставить в начало массива и расположить их в порядке возрастания C++
C++ Поместить элементы массива M в начало массива B в обратном порядке
C++ Найти столбец массива с наибольшей суммой элементов и записатьегох в виде одномерного массива
C++ Вставка в начало списка
Данный массив A (n). Все положительные его элементы поместить в начало массива B (n), а все отрицательные - в начало массива C (n). Подсчитать количес C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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++ Напишите программу, которая выполняет неполную сортировку массива: ставит в начало массива три самых меньших
C++ Вставка в матрицу заданного одномерного массива на k-ю строку

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

Или воспользуйтесь поиском по форуму:
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     Вставка в начало одномерного массива
Ответ Создать тему
Опции темы

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