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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.07.2013, 17:05   #1
Chuguev
Пользователь
 
Регистрация: 27.07.2013
Сообщений: 10
По умолчанию Массивы в Си

Есть массив bool X[3][8] в нем лежат значения в вперемешку типа так:

10010101
11001011
00110001

Нужно заполнить второй массив Y так чтобы единицы в нем были на месте единиц с первого массива за которыми следовал ноль :

10010100
01001000
00010000

Я попробовал сделать так но у меня получается какая то муть на выходе:

Код:
bool X[3][8]={{10010101},{11001011},{00110001}};
bool Y[3][8]={};

    for (int i=0;i<3;i++){
        for(int j=0;j<7;j++){
           if( X[i][j]==1 && X[i][j+1]==0){
              
              Y[i][j]=1;
           }
       }
   }

Последний раз редактировалось Chuguev; 28.07.2013 в 17:19. Причина: кодировка текста глючит
Chuguev вне форума Ответить с цитированием
Старый 28.07.2013, 17:18   #2
Chuguev
Пользователь
 
Регистрация: 27.07.2013
Сообщений: 10
По умолчанию

А получается почему то :
00000001
00000001
00000001
Chuguev вне форума Ответить с цитированием
Старый 28.07.2013, 17:30   #3
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,577
По умолчанию

ты уверен что это корректно? :
Код:
bool X[3][8]={{10010101},{11001011},{00110001}};
10010101 - это одно большое число типа int, че ты там в массив то запихнул?
rrrFer вне форума Ответить с цитированием
Старый 28.07.2013, 17:38   #4
Chuguev
Пользователь
 
Регистрация: 27.07.2013
Сообщений: 10
По умолчанию

Ах да, запятые
Chuguev вне форума Ответить с цитированием
Старый 28.07.2013, 17:44   #5
studen
Пользователь
 
Регистрация: 21.05.2012
Сообщений: 88
По умолчанию

Код:
for (int i=0;i<3;i++)
	for(int j=0;j<7;j++)
		Y[i][j] = X[i][j] & !Y[i][j+1];
Вот так, может быть?
С восьмым битом я не делал ничего, можно нулем заменить
studen вне форума Ответить с цитированием
Старый 28.07.2013, 17:45   #6
Chuguev
Пользователь
 
Регистрация: 27.07.2013
Сообщений: 10
По умолчанию

Вот такой код работает почти как надо... но самому последнему элементу массива присваивается почему то 1...
Хотя я так и не понимаю почему там должно быть "Y[i][j+1]=1; " вместо "Y[i][j]=1; "


Код:
#include <iostream>
using namespace std;

int main(){

bool X[3][8]={{1,0,0,1,0,1,0,1},{1,1,0,0,1,0,1,1},{0,0,1,1,0,0,0,1}};

bool Y[3][8]={};

    for (int i=0;i<3;i++){
        for(int j=0;j<7;j++){
           if( X[i][j]==1 && X[i][j+1]==0){
              
              Y[i][j+1]=1;
           }
       }
   }


return 0;
}

Последний раз редактировалось Chuguev; 28.07.2013 в 17:51.
Chuguev вне форума Ответить с цитированием
Старый 28.07.2013, 18:33   #7
studen
Пользователь
 
Регистрация: 21.05.2012
Сообщений: 88
По умолчанию

Там и не должно быть j+1, а то единицы окажутся там, где стоит ноль и перед ним стояла единица. Там должно быть просто j, и все дела.

А потом просто вот как надо:
for( int i = 0; i < 3; i++ ) Y[i][7] = 0;
Ведь после последнего бита не стоит нуля, верно? Значит, единицей заменять нельзя.

Кстати, я могу и ошибаться, но правильно ли {1,0,0,1,0,1,0,1}? Может {1,1,0},{0,1,0} и так далее?

Последний раз редактировалось studen; 28.07.2013 в 18:47.
studen вне форума Ответить с цитированием
Старый 28.07.2013, 20:31   #8
Chuguev
Пользователь
 
Регистрация: 27.07.2013
Сообщений: 10
По умолчанию

Цитата:
Там и не должно быть j+1, а то единицы окажутся там, где стоит ноль и перед ним стояла единица. Там должно быть просто j, и все дела.
Это и странно по логике должно стоять просто [j] но тогда значения убегают от нужных позиций на один бит , а вот [j+1] работает ... Путаница какая то.

Цитата:
Кстати, я могу и ошибаться, но правильно ли {1,0,0,1,0,1,0,1}? Может {1,1,0},{0,1,0} и так далее?
Это массив из трех массивов по восемь переменных.
Chuguev вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Одномерные массивы, двумерные массивы, строки Sand093 C++ Builder 11 20.05.2012 21:48
Двумерные массивы(матрица) 2)Строковые массивы(строки): 3)Структуры nuriyat Помощь студентам 1 21.01.2012 16:16
Двумерные массивы(массивы указателей на массивы) krytishka99 Помощь студентам 1 29.12.2011 19:51
Динамические массивы и массивы варианты N@stya Помощь студентам 0 11.06.2010 21:09
Даны одномерные массивы А и В. Сформировать массивы, состоящие из элемент LyaLya Помощь студентам 15 20.12.2009 14:12