Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.12.2012, 19:53   #11
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,315
По умолчанию

Опять же не проверял:
Код:
int after_first(int count, int size, int *a)//return new count
{
    int p;
    cout << "Please input number: ";
    cin >> p;
    for(int i = 0; i < count; ++i) {
        if(a[i] > 0 && i + 1 < size) {
            if (count < size)
                ++count;
            for (int j = count - 1; j > i + 1; --j) {
                a[j] = a[j - 1];
            }
            a[i + 1] = p;
            return count;
        }
    }
    return count;
}
Функция возвращает новое количество элементов в массиве.
size - количество элементов в массиве
count - количество заданных элементов в массиве
Если в массив нельзя больше добавить элементов, то последние начнут выбрасываться.

kventin_zhuk, Вас не смущает, что можно выйти за пределы массива?)
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 22.12.2012 в 19:56.
BDA на форуме Ответить с цитированием
Старый 22.12.2012, 20:01   #12
kventin_zhuk
БНТУ ФИТР
Форумчанин
 
Аватар для kventin_zhuk
 
Регистрация: 20.05.2012
Сообщений: 315
По умолчанию

ну да) нехорошо получилось) но работать должно)
С++(console/builder/WinAPI/Linux), C#, Pascal, Delphi, Asm, Prolog.
< ----- Контакты
kventin_zhuk@live.com
kventin_zhuk вне форума Ответить с цитированием
Старый 22.12.2012, 20:07   #13
kventin_zhuk
БНТУ ФИТР
Форумчанин
 
Аватар для kventin_zhuk
 
Регистрация: 20.05.2012
Сообщений: 315
По умолчанию

А если вот так? только тут непонятно было произведено преобразование или нет. А я бы вообще структурку сделал, c двумя полями: одно указатель, чтобы хватать память, а другое - количество элементов . Было бы проще.
Код:
int* after_first( int n, int*a )
{
    int p;
    int *b =  new int [n + 1];
    cout << "Please input number: ";
    cin >> p;
    for(int i = 0; i < n; ++i)
	{
		b[i] = a[i];
        if(a[i] > 0) {
            for (int j = n ; j > i + 1; --j) {
                b[j] = a[j - 1];
            }
            b[i + 1] = p;
	    delete [] a;
            return b;
        }
    }
    delete [] b;
    return a;
}
С++(console/builder/WinAPI/Linux), C#, Pascal, Delphi, Asm, Prolog.
< ----- Контакты
kventin_zhuk@live.com

Последний раз редактировалось kventin_zhuk; 22.12.2012 в 20:12.
kventin_zhuk вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
нужна программа для добавления друзей в одноклассниках mexx74 Фриланс 3 13.12.2013 10:10
Функция смены местами первого и последнего елемента двумерного масива.С++. DIQUON Помощь студентам 5 17.12.2012 21:07
проблема с поиском первого положительного элемента столбца матрицы вещ-х чисел Vse Strogo Помощь студентам 0 15.05.2012 13:20
Сумма элементов матрицы после 1-го положительного (СИ) flexin Помощь студентам 14 16.01.2010 11:41
функция подсчета суммы элементов после первого отрицательного nikzntu Общие вопросы C/C++ 0 13.01.2009 21:40