Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 5.00
Molotoff
1 / 1 / 0
Регистрация: 21.07.2009
Сообщений: 50
#1

Заполнение массива - C++

23.01.2011, 06:32. Просмотров 1280. Ответов 1
Метки нет (Все метки)

Доброго дня, уважаемые форумчане!
В очередной раз сталкиваюсь с небольшой проблемой, суть ее заключается в следующем. Есть два массива малый и большой, нужно значения из малого более-менее равномерно записать в большой. Например:
A[5] = {0,1,2,3,4} - исходный массив
B[17] = {0,0,0,1,1,1,2,2,2,3,3,3,3,4,4,4,4} или B[17] = {0,0,0,0,1,1,1,2,2,2,2,3,3,3,4,4,4} - результирующий массив
Т.е. принципиальной разницы нет, главное, чтоб эти "отрезки" отличались не более чем на единицу. И опять же, требуется, чтоб алгоритм был быстрый (выполнялся за небольшое число операций).
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.01.2011, 06:32
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Заполнение массива (C++):

Ввод двумерного массива, ввод размерности массива, заполнение массива случайными числами
#include "stdafx.h" #include "locale.h" #include "stdlib.h" #include...

Заполнение массива значениями из символьного массива
есть массив символов char z;есть целочисленный массив int b;каждый символ z это...

Заполнение массива
Помогите пожалуйста переписать данный код что бы массив заполнялся таким...

Заполнение массива
Рандомно заполнить массив из 8 элементов таким образом чтобы все его элементы...

Заполнение массива
Привет народ! Очень нужна помощь срочно!(( Вот такое вот задание: 1,Составьте...

Заполнение массива
Здравствуйте, помогите пожалуйста заполнить массив таким образом, или хотя бы...

1
alex_x_x
бжни
2454 / 1660 / 134
Регистрация: 14.05.2009
Сообщений: 7,162
23.01.2011, 06:56 #2
Лучший ответ Сообщение было отмечено Molotoff как решение

Решение

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
#include <iostream>
#include <algorithm>
#include <iterator>
#include <cmath>
 
const size_t nB = 13;
 
int A[] = {0,1,2,3,4},
    B[nB];//{0,0,0,1,1,1,2,2,2,3,3,3,3,4,4,4,4}; 
 
const size_t nA = sizeof(A)/sizeof(A[0]), step = floor(nB*1.0/nA);
            
int main(){
   size_t i,j,index = 0, offer = nB - step*nA;
   for( i=0;i<nA;++i ){
      for( j=0;j<step && index<nB;++j,++index ){
         B[index]=A[i];
      }  
      if( offer ){
         B[index++] = A[i];
         --offer; 
      }   
   }  
   std::copy( B,B+nB,std::ostream_iterator<int>(std::cout," ") );
}
Добавлено через 1 минуту
тут про отличия отрезков прочитал надо поразмыслить
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.01.2011, 06:56
Привет! Вот еще темы с решениями:

Заполнение массива от -5 до 5.
Всем привет, народ помогите пожалуйста с задачей... Borland c 3.1 ...

Заполнение массива
Здравствуйте, подскажите, как заполнить массив например из 10 000 элементов ...

Заполнение массива
Как заполнить массив? Вот что получилось: #include &lt;stdio.h&gt; #include...

Заполнение массива
Даны числа от 0 до 15 (включительно), нужно записать их в одномерный массив в...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru