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

ошибка компиляции - C++

Восстановить пароль Регистрация
 
klazius
9 / 0 / 1
Регистрация: 02.10.2012
Сообщений: 51
08.10.2012, 15:17     ошибка компиляции #1
error: lvalue required as left operand of assignment

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
for (int i=0; i<STRANDS_AMOUNT;i++)
    { 
        int sum = 0; 
        int k = 0; 
        while(strands[i][k] !='0')
        { if(strands[i][k]='C'||strands[i][k]='G') sum++;
        } 
        if(maxValue<sum/strands[i].length())
        { 
            maxValue = sum/strands[i].length(); 
            maxValuePosition = i; k++;
        }
    }
ошибку указывает на строку:
C++
1
{ if(strands[i][k]='C'||strands[i][k]='G') sum++;
как это исправить?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.10.2012, 15:17     ошибка компиляции
Посмотрите здесь:

Ошибка: "Stack around the variable was corrupted" C++
C++ Ошибка компиляции
C++ Ошибка компиляции
C++ Ошибка компиляции
ошибка компиляции C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5549 / 2563 / 233
Регистрация: 01.11.2011
Сообщений: 6,337
Завершенные тесты: 1
08.10.2012, 15:26     ошибка компиляции #2
Сравнение на равенство ==
Знак присваивания =
klazius
9 / 0 / 1
Регистрация: 02.10.2012
Сообщений: 51
08.10.2012, 15:38  [ТС]     ошибка компиляции #3
спасибо!

Добавлено через 9 минут
мне сказали, что я увожу программу в бесконечный цикл и в качестве maxValue получаю значение 0.
не подскажите как это решить?
SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5549 / 2563 / 233
Регистрация: 01.11.2011
Сообщений: 6,337
Завершенные тесты: 1
08.10.2012, 16:43     ошибка компиляции #4
Чему до начала цикла равно maxValue? Оно должно быть объявлено. Или нулю или первому элементу strands, не знаю, что там по логике.

Бесконечный цикл в двух случаях может быть тут:
в цикле
C++
1
for (int i=0; i<STRANDS_AMOUNT;i++)
переменная STRANDS_AMOUNT как-то по корявому объявлена. Но мало вероятно.
Скорее в цикле
C++
1
while(strands[i][k] !='0')
при переборе всех значений strands[i][k] никогда не становится равной нулю. То есть strangs вообще не содержит нулей.

Добавлено через 2 минуты
Надо в условие while ввести дополнительное сравнение на нахождение конца массива. Когда все значения перебраны, тогда завершить цикл.
Yandex
Объявления
08.10.2012, 16:43     ошибка компиляции
Ответ Создать тему
Опции темы

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