for (int i=0;i<n;i++)
b=a;
Помогите решить задачу
или хотя бы просто алгоритм рассказать, и как выполняется операция копирования в зависимости от размеров массивов
Задача: 1)Одномерные статические(автоматические) массивы
Операция копирования массвов( просто реализовать на примере двух массивов, тип int)
А) размеры массивов совпадают
Б) размеры массивов различны
2)Вторая часть тоже самое ток для динамических.
Можно и за деньги. Помогите пожалуйста:(
Цитата: DunhiL
Помогите решить задачу
или хотя бы просто алгоритм рассказать, и как выполняется операция копирования в зависимости от размеров массивов
Задача: 1)Одномерные статические(автоматические) массивы
Операция копирования массвов( просто реализовать на примере двух массивов, тип int)
А) размеры массивов совпадают
Б) размеры массивов различны
2)Вторая часть тоже самое ток для динамических.
Можно и за деньги. Помогите пожалуйста:(
или хотя бы просто алгоритм рассказать, и как выполняется операция копирования в зависимости от размеров массивов
Задача: 1)Одномерные статические(автоматические) массивы
Операция копирования массвов( просто реализовать на примере двух массивов, тип int)
А) размеры массивов совпадают
Б) размеры массивов различны
2)Вторая часть тоже самое ток для динамических.
Можно и за деньги. Помогите пожалуйста:(
memcpy тебе в помощь
и копируй хоть статические, хоть динамические, хоть int, хоть char
да вот учитель сказал что ее нельзя использовать, надо все руками делать, по сложному пути идти(.
если размеры совпадают - тупо цикл
Код:
для динамических массивов:
Код:
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;
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;
}
{
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;
}
опять же по условию неясно насчет динамических массивов - требуется ли оставлять их в той же области памяти, или можно указатель просто оставлять(как в моем примере).
cпасибо Большое, Вы мне очень помогли, программа работает, еще раз огромное спасибо:)