Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Помогите решить задачу

41K
24 декабря 2008 года
DunhiL
8 / / 24.12.2008
Помогите решить задачу
или хотя бы просто алгоритм рассказать, и как выполняется операция копирования в зависимости от размеров массивов
Задача: 1)Одномерные статические(автоматические) массивы
Операция копирования массвов( просто реализовать на примере двух массивов, тип int)
А) размеры массивов совпадают
Б) размеры массивов различны

2)Вторая часть тоже самое ток для динамических.

Можно и за деньги. Помогите пожалуйста:(
11
24 декабря 2008 года
oxotnik333
2.9K / / 03.08.2007
Цитата: DunhiL
Помогите решить задачу
или хотя бы просто алгоритм рассказать, и как выполняется операция копирования в зависимости от размеров массивов
Задача: 1)Одномерные статические(автоматические) массивы
Операция копирования массвов( просто реализовать на примере двух массивов, тип int)
А) размеры массивов совпадают
Б) размеры массивов различны

2)Вторая часть тоже самое ток для динамических.

Можно и за деньги. Помогите пожалуйста:(


memcpy тебе в помощь
и копируй хоть статические, хоть динамические, хоть int, хоть char

41K
24 декабря 2008 года
DunhiL
8 / / 24.12.2008
да вот учитель сказал что ее нельзя использовать, надо все руками делать, по сложному пути идти(.
21K
24 декабря 2008 года
IERO_Distin
23 / / 21.05.2007
считаем массивы объявлеными(дял динамических память выделена) и массив a инициализированым. n=размер a, m=размер b.
если размеры совпадают - тупо цикл
 
Код:
for (int i=0;i<n;i++)
       b=a;

для динамических массивов:
 
Код:
delete []b;//на плюсах
int* b=new int[n]; //на плюсах
//free(b);//на чистом си
//int* b=(int*)malloc(sizeof(int)*n); //на чистом си
for (int i=0;i<n;i++)
       b=a;

если размеры различны - тут надо сначала сформулировать что должно происходить. как вариант - отрезание невмещающейся части, если приемник меньше, и забивание пустоты нулями, если приемник больше.
Код:
if(m>n)
{
for (int i=0;i<n;i++)
       b=a;
for (int i=n;i<m;i++)
       b=0;
}
if(m<n)
{
for (int i=0;i<m;i++)
       b=a;
}

опять же по условию неясно насчет динамических массивов - требуется ли оставлять их в той же области памяти, или можно указатель просто оставлять(как в моем примере).
41K
24 декабря 2008 года
DunhiL
8 / / 24.12.2008
cпасибо Большое, Вы мне очень помогли, программа работает, еще раз огромное спасибо:)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог