Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.12.2012, 21:57   #1
Drac0Sha
Пользователь
 
Регистрация: 29.02.2012
Сообщений: 20
По умолчанию Проблема с формированием массива

Здравствуйте, возникла проблема с формированием массива
У меня создается массив вида 01110101. Мне нужно создать новый массив в котором каждый элемент прошлого массива будет повторяться по 4 раза, т.е. получится 0000 1111 1111 1111 0000 1111 0000 1111 ( пробелы поставил для лучшей наглядности). Но почему то у меня формирует вообще неправильно. Язык с++. Вот код:
Код:
 
int message[8]; 
int message_translate[32];
// обнулим массив
for (int i=0;i<32;i++){
    message_translate[i] =0;
}
for (int i=0;i<8;i++){
    for (int j=0;j<4;j++){
             message_translate[i+j] =  message[i];
    }
}
Выдает message = 01111111
message_translate = 01111111111000000000000000000000
Подскажите пожалуйста, что не так ?
Drac0Sha вне форума Ответить с цитированием
Старый 23.12.2012, 22:25   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
int k=0;
for (int i=0;i<8;i++){
    for (int j=0;j<4;j++){
             message_translate[k++] =  message[i];
    }
}
Подходит?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.12.2012, 22:27   #3
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,378
По умолчанию

Или поправить строку для заполнения так:
Код:
message_translate[4*i+j] =  message[i];
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 23.12.2012, 22:36   #4
Smogg
Участник клуба
 
Регистрация: 14.06.2011
Сообщений: 1,138
Сообщение

потому что у Вас сумма итераторов i и j всегда меньше 12 ))
Код:
int message[8]; 
int message_translate[32] = {0};

for (int i=0;i<8;i++){
 
    for (int j=0;j<4;j++){
             message_translate[4*i + j] =  message[i];
    }
}
Smogg вне форума Ответить с цитированием
Старый 24.12.2012, 22:10   #5
Drac0Sha
Пользователь
 
Регистрация: 29.02.2012
Сообщений: 20
По умолчанию

Спасибо, помогло, а вот еще вопрос
Есть массив 1121 и массив состоящий из 12 чисел ( 1 и 2 )
и мне нужно их перемножить таким способом
1 1 1 2 1 2 2 2 1 1 1 1
*
1 1 2 1 1 1 2 1 1 1 2 1
=
1 1 2 2 1 2 4 2 1 1 2 1
Т.е. перемножать по 4 числа

Вот код :
Код:
amount= 0;
for (int i=0;i<3;i++){
    for (int j=0;j<4;j++){
        message[amount] = message_translate[amount]*code[j];
    }
}
массив message - тот который должен появится
message_translate - в нем 12 чисел
code - в нем 4 числа
Подскажите, пожалуйста, выдает опять ерунду, что в нем не так ?

И еще вопрос:
Вот есть массив message_translate в нем 12 чисел,например, как написано выше 1 1 1 2 1 2 2 2 1 1 1 1 , как можно сделать новый массив полученный сложением по четыре элемента этого массива, т.е. новый массив будет иметь вид : 5 7 4 ?
Drac0Sha вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разработка программ, связанных с формированием и обработкой одномерных массивов Орлов Никита Паскаль, Turbo Pascal, PascalABC.NET 1 08.11.2012 16:22
Проблема с формированием адреса отправителя shoes PHP 2 23.09.2010 13:40
Проблемы с формированием SQL-запроса Nigadyai БД в Delphi 16 11.03.2010 19:50
Проблема с формированием отчета Swatch Microsoft Office Access 1 25.02.2010 00:32
Проблема с формированием запроса на выборку.. Tanuska___:) БД в Delphi 3 17.02.2009 16:31