2015-12-02 2 views
0

Я начинаю программировать на C и используя devc. Поэтому я пытаюсь XOR на половину массива с другой половиной. Я создал один массив из 3018 слов, которые берутся как символы, а затем попытаются их XOR. От взгляда вокруг я сделал все, что мог, но он не работает, и я тоже не понимаю, как XOR ..XOR'ing массивы символов

Если у меня есть массив из 3018 номеров, i XOR первые 1509 номеров со вторым 1509 номеров .. как я могу это сделать ??

int main(void) 
{ 
int i = 0; 
char message[3018] = {10, 117, 117, 10, 10, 10, 10, 10..}; 
char xor[1509]; 

    for(i=0; i<1510;i++) 


xor[i] = (char)(message[i]^message[i+1509]); 

// Enter your code here... 

while(1); 
return 0; 
} 

ВАЖНО: Я отрезать линию

char message[3018] = {10, 117, 117, 10, 10, 10, 10, 10..}; 

потому что, очевидно, 3018 слов, которые вводятся, я не могу показать их все, так что я просто использовал ...

есть некоторые проблемы в вышеприведенном коде, например.
в строке сообщения [3018] указывает неожиданный неквалифицированный идентификатор перед токеном xor? неожиданного первичное выражение перед 'исключающего' знака в исключающем [I] линии ..

+0

Всегда определить, что «она не работает» средства. Как это не работает? Что в итоге? Что ожидалось? Единственная явная ошибка в вашем коде - это ограничения, я должен перейти от 0 до 1508, чтобы было 1509 значений, поэтому измените значение 1510 на 1509, чтобы исправить это. В противном случае вы правильно храните символы. –

+0

Это сбивает с толку, когда вы смешиваете «число» и «слово». Часто «слово» представляет собой число определенного размера, например 16 бит, но это не то, что вы, похоже, имеете в виду. Важно быть точным с такими вещами. – unwind

+0

извините, проблема связана с линией сообщения char [3018], говорит неожиданный неквалифицированный идентификатор перед токеном xor? – anony

ответ

1

Изменения:

for(i=0;i<1510;i++) 
    xor[i] = (char)(message[i]^message[i+1509]); 

в

for(i=0;i<1509;i++) 
    xor[i] = (char)(message[i]^message[i+1509]); 

должно предоставить вам правильный вывод XOR.

И преобразование этих чисел в символ может приводить к неизвестным выходным символам, например. k Xr2 был тем, что я получил для ввода char message[10] = {10, 117, 117, 10, 10, 10, 10, 10, 90, 4};. Надеюсь, вы знаете, что с ними делаете.

И мы можем иметь другое имя массива вместо этого, пожалуйста :) заменить все xor на xyznotkeyword

+0

извините, я должен был сказать, что одной из проблем была инициализация линии char xor [1509], перед ядром xor появился неожиданный неквалифицированный идентификатор – anony

Смежные вопросы