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

Копирование массива поэлементно в другой массив - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.71
Flyinsky
0 / 0 / 0
Регистрация: 26.05.2009
Сообщений: 48
14.04.2012, 00:21     Копирование массива поэлементно в другой массив #1
Всем привет. Задание такое : Не используя оператора присваивания для массивов написать программу поэлементно копирующий один массив в другой , попутно подсчитывающий сколько раз повторяется в качестве элемента некое число - а. Коль-во элементов массива n=10, Значения элементов массива запрашиваются в отдельной функции с консоли. Вот начал делать, ввод первого массива сделал, а дальше чего то не получается(копирование из первого массива во второй, подсчет повтора числа - а):
пока пробую без отдельной функции.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include "stdafx.h"
#include "stdio.h"
#include "conio.h"
 
int _tmain(int argc, _TCHAR* argv[])
{int n, i,j, s=0;
 
int a[10]={};
int b[10]={};
 
 for(i=0; i<10; i++)
 {
     printf("Vvedite a[%i]=",i+1);
     scanf("%d",&a[i]);
 }
 
getch();
 
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.04.2012, 00:21     Копирование массива поэлементно в другой массив
Посмотрите здесь:

C++ Копирование строк из одного массива в другой
C++ Сложить два массива поэлементно
Из данного массива и другого массива того же типа, но другой размерности сформируйте общий массив и найдите его максимальный элемент C++
C++ Копирование одного массива в другой
Копирование чисел из массива в массив большей размерности C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Unwebo
20 / 20 / 3
Регистрация: 13.04.2012
Сообщений: 38
14.04.2012, 00:58     Копирование массива поэлементно в другой массив #2
Копирование можно осуществлять функцией memcpy
А подсчет нужного символа простым сравнением, и увеличиванием счетчика на 1
C++
1
if(a[i]==ch) count++;
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 50
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
14.04.2012, 01:04     Копирование массива поэлементно в другой массив #3
memcpy копирует не поэлементно.
Unwebo
20 / 20 / 3
Регистрация: 13.04.2012
Сообщений: 38
14.04.2012, 01:10     Копирование массива поэлементно в другой массив #4
Верно, он копирует побайтно, но мы же знаем размер типа int в байтах =)
C++
1
2
for(int i=0; i<10; i++)
    memcpy((void*)&b[i], (void*)&a[i], 4);
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 50
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
14.04.2012, 01:51     Копирование массива поэлементно в другой массив #5
int не обязан быть равным 4. Размер типа можно получить с помощью операции sizeof.
Unwebo
20 / 20 / 3
Регистрация: 13.04.2012
Сообщений: 38
21.04.2012, 12:01     Копирование массива поэлементно в другой массив #6
Toshkarik, приведите пример, когда int равен не 4 байта
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.04.2012, 12:08     Копирование массива поэлементно в другой массив
Еще ссылки по теме:

копирование с одного массива в другой C++
C++ Найти среднее арифметическое элементов массива, сравнить два массива поэлементно
Копирование элементов из одного массива в другой C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 50
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
21.04.2012, 12:08     Копирование массива поэлементно в другой массив #7
Что значит когда? Это зависит от реализации компилятора. int равен 2 байтам, например, в Borland C++ 4.5. 4 байта в нем имеет тип long int. short int в нем так же 2 байта. На современных GCC и VS short равен 2 байта, в то время как int == long int == 4 байта. В стандарте не указанны размеры типов. Лишь равенство 1 == sizeof( char ) <= sizeof( short int ) <= sizeof( int ) <= sizeof( long int ) <= sizeof( long long int )
Yandex
Объявления
21.04.2012, 12:08     Копирование массива поэлементно в другой массив
Ответ Создать тему
Опции темы

Текущее время: 04:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru