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

Перевыделение массива - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Формат даты число/месяц. http://www.cyberforum.ru/cpp-beginners/thread86823.html
Привет, помогите пожалуйста решить задачку на с++ (6.0) "Дата задается в формате число/месяц. С учетом высококосных годов реализовать вычитание определенного пользователем количества дней, реализовать возможность определения количества дней между двумя датами". Очень надеюсь на вашу помощь!
C++ как заполнить массив как заполнить массив состоящий из определенного числа элементов http://www.cyberforum.ru/cpp-beginners/thread86822.html
C++ Вычислить произведение ряда
Дано натуральное число n. Вычислить (1+1/1^2)*(1+1/2^2)…(1+1/n^2) #include <iostream> using namespace std; int main(int argc, char *argv) { int i; double n,s,d;
C++ Функция ввода матрицы
Подскажите, как написать функцию ввода матрицы! а затем, как вызвать ее! Заранее благодарен, просто я тока учусь...
C++ Изменение в файле записей с заданным значением поля http://www.cyberforum.ru/cpp-beginners/thread86793.html
Написал прогу для заполнения определенных полей и создания текстового файла с этими полями. Подскажите пожалуйста как отредактировать скажем к примеру в тхт 11111 22222 33333 44444 ....... Как с 33333 поменять на 55555
C++ разбить прямоугольник на квадраты здравствуйте! есть задание :Задан прямоугольник размером А*В (А и В - натуральные). От прямоугольника каждый раз отрезают квадраты максимальной площади. Найти общее количество квадратов. нашел реализацию на паскале program kv; var m,n:longint; function KVD(m,n:longint):longint; begin if (m=0) or (n=0) then kvd:=0 else if m=n then kvd:=1 else подробнее

Показать сообщение отдельно
FC-NEO
0 / 0 / 0
Регистрация: 03.01.2010
Сообщений: 14
17.01.2010, 20:31  [ТС]     Перевыделение массива
Цитата Сообщение от Nick Alte Посмотреть сообщение
А в чём проблема-то?
а) Ввести размер массива, создать массив, ввести элементы
б) Найти число чётных элементов, через malloc создать ещё один массив длиной n+p.
в) Занести в новый массив элементы старого и нули в нужном порядке (слегка усложнённый вариант копирования).
г) Удалить исходный массив через free, распечатать новый массив.
Нет, не подходит. Нужно работать только с 1 массивом.

Добавлено через 12 минут
Цитата Сообщение от valeriikozlov Посмотреть сообщение
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
#include <process.h>
#include <stdlib.h>
int main()
{
    int n, *p, i, j;
    printf("Razmer massiva N= ");
    scanf("%d", &n);
    if((p  = (int *)malloc (n * sizeof (int))) == NULL)
        exit(1);
    printf("Vvod elementov:\n");
    for(i=0; i<n; i++)
    {
        printf("[%d]= ", i);
        scanf("%d", &p[i]);
    }
    for(i=0; i<n; i++)
    {
        if(p[i]%2==0)
        {
            n++;
            if((p = (int *)realloc( p, n * sizeof (int)))==NULL)
                exit(1);
            for(j=n-1; j>i; j--)
                p[j]=p[j-1];
            p[i]=0;
            i++;
        }
    }
    printf("Poluchenni massiv:\n");
    for(i=0; i<n; i++)
        printf("%d ", p[i]);
    return 0;
}
Спасибо ОГРОМНОЕ! Я нашел ошибку у себя, ф-н realloc не так записывал, записывал (n+p), забыл что нужно просто написать на что перевыделить, т.е. (p,n* ...)
 
Текущее время: 05:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru