Заданы массивы [latex]A(n)[/latex] и [latex]B(m)[/latex]. Получить массив [latex]C(m+n)[/latex], расположив в начале его элементы массива [latex]A[/latex], а затем элементы массива [latex]B[/latex].
Из выше написанного ясно что нам нужно сделать. Все пояснения максимально детально расписаны в самом коде.
Тесты:
n | m | A[n] | B[m] | Результат: |
3 | 4 | 0 1 2 | 5 7 8 4 | A={0 1 2} B={5 7 8 4} C={0 1 2 5 7 8 4} |
2 | 9 | 9 3.6 | 7.4 3.6 4.6666 7.99702 1 1 1 1 1 | A={9 3.6} B={7.4 3.6 4.6666 7.99702 1 1 1 1 1} C={9 3.6 7.4 3.6 4.6666 7.99702 1 1 1 1 1} |
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 34 35 36 37 38 39 40 41 |
#include <iostream> #include <string.h> using namespace std; int main() { int n,m; //Задаем размерность обоих массивов. cin >>n>>m; //Считываем их. double *A=new double [n]; //Выделяем память для 1-го массива. double *B=new double [m]; //Выделяем память для 2-го массива. double *C=new double [n+m]; //Выделяем память для массива, который объединит в себе 1-й и 2-й массивы. cout <<"A={"; for(int i=0;i<n;++i){ //Заполняем 1-й масив и сразу выводим его. cin >>A[i]; cout <<A[i]; if(i<n-1) cout <<" "; else cout <<"}"; } cout <<endl<<"B={"; for(int j=0;j<m;++j){ //Заполняем 2-й масив и сразу выводим его. cin >>B[j]; cout <<B[j]; if(j<m-1) cout <<" "; else cout <<"}"; } cout <<endl<<"C={"; memcpy(C,A,n*sizeof (A[0])); //С помощью функции "memcpy"(из библиотеки string.h) копируем данные из 1-го массива(A) в массив(C). По условию задачи в массиве C сначала идут элементы массива A. //Задаем данные в функцию: "в какой массив","из какого массива", "размер массива"(размер типа одного элемента массива, умноженный на число элементов(n)). memcpy(C+n,B,m*sizeof (B[0])); //"C+n"-n первых элементов массива(C) уже скопированы из 1-го массива(A), оставшиеся m будут скопированы из 2-го массива(B). for(int k=0;k<n+m;++k){ cout <<C[k]; //Выводим массив(C) - объединение 1-го(A) и 2-го(B) массивов. if(k<n+m-1) cout <<" "; else cout <<"}"; } return 0; } |
— «Тут все довольно просто» — Вы на первом курсе учитесь, здесь всё просто. Это оценочное суждение не есть повод отказываться объяснять.
— Метки неудачные — «С++», «массивы». Это не характеризует задачу.
Зачтено окончательно будет после беседы по задаче на экзамене.
Мне наверное стоило написать, что все пояснения имеются в самом коде. Метки поправлю.
Поправьте sizeof — должен считаться именно размер элемента, а не указателя, ну и все таки исправьте замечания Игоря Евгеньевича, как Вы написали в своем комментарии — а так задача уже зачитана.
Также напишите отчет по задаче, код которой мы с Вами обсудили на экзамене — баллы сейчас Вам нужны.
Исправил. Задачу, о который вы говорите только что опубликовал.