Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> error C2105: '--' needs l-value 
V
    Опции темы
Zorak
Дата 10.11.2008, 19:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 720
Регистрация: 13.11.2007

Репутация: нет
Всего: 3



есть код 
Код

#include <stdio.h>

#define M 6
#define N 6
#define MAX 100 

void main(void)
{
int array[M][N]; 
int i, j ,k = 10, buf;

for(i=0;i<M;i++)
    {
        for(j=0;j<N;j++) 
            {
                array[i][j] = k;
                k++;
            }
        printf("\n");
    }

for(i=0;i<M;i++)
    {
        for(j=0;j<N;j++) 
            {
                printf("%4d", array[i][j]);
            }
        printf("\n");
    }

printf("\n");

for(i=0;i<M;i++,M--)
    {
        for(j=0;j<N;j++)
            {
                buf = array[i][j];    
                array[i][j] = array[M][j];
                array[M][j] = buf;
            }
    }

for(i=0;i<M;i++)
    {
        for(j=0;j<N;j++) 
            {
                printf("%4d", array[i][j]);
            }
        printf("\n");
    }



Почему компилятору не нравиться етот цикл: 
Код

for(i=0;i<M;i++,M--)
    {
        for(j=0;j<N;j++)
            {
                buf = array[i][j];    
                array[i][j] = array[M][j];
                array[M][j] = buf;
            }
    }


видает вот ету ошибку: error C2105: '--' needs l-value (идеться про строку for(i=0;i<M;i++,M--)) ???
З.Ы. условие задачи: отобразить масив относительно средней горизонтальной оси.. тоесть грубо говоря, есть масив 6 на 6... он заполняеться и в нему надо поменять 1 строку с 6, 2 с 5 и 3 с 4)... может я не правильно сам код написал :?

Это сообщение отредактировал(а) Zorak - 10.11.2008, 19:32


--------------------
Знание - сила. А сила есть, ума не надо...
Занимаюсь интернет бизнесом и ищу новых партнеров. Кому интересно - обращайтесь в ЛС, скайп или мыло.
PM MAIL ICQ   Вверх
Fazil6
Дата 10.11.2008, 19:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1653
Регистрация: 3.5.2006
Где: Минск

Репутация: 7
Всего: 60



потому, что M - это не переменная и инкрементировать/декрементировать это нельзя. 
Твой код это 
Код

for(i=0;i<6;i++,6--)

что, собственно, является бредом

Это сообщение отредактировал(а) Fazil6 - 10.11.2008, 19:35
PM MAIL   Вверх
Zorak
Дата 10.11.2008, 19:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 720
Регистрация: 13.11.2007

Репутация: нет
Всего: 3



Fazil6, собственно ето я понял уже ещё до твого поста)) ... исправил вот так
Код

K = M;
for(i=0;i<=K;i++)
    {
        for(j=0;j<N;j++)
            {
                buf = array[i][j];    
                array[i][j] = array[K][j];
                array[K][j] = buf;
            }
    K = K-1;
    }


Но оно всё равно не делает так как мне надо.... заполняеться масив и виводиться и всё!! программа прекращает свои действия(
Ввобщем спотикаеться на самом цикле, тоесть
Код

                buf = array[i][j];    
                array[i][j] = array[K][j];
                array[K][j] = buf;

Почему ?.. Опять чтото нельзя делать с переменной K ???

Это сообщение отредактировал(а) Zorak - 10.11.2008, 19:54


--------------------
Знание - сила. А сила есть, ума не надо...
Занимаюсь интернет бизнесом и ищу новых партнеров. Кому интересно - обращайтесь в ЛС, скайп или мыло.
PM MAIL ICQ   Вверх
FunkyFlow
Дата 10.11.2008, 20:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 26.8.2008

Репутация: нет
Всего: нет



попробуй так:

K = M - 1;
for(i=0;i<=K;i++)
    {
        for(j=0;j<N;j++)
            {
                buf = array[i][j];    
                array[i][j] = array[K][j];
                array[K--][j] = buf;
            }
    }

Это сообщение отредактировал(а) FunkyFlow - 10.11.2008, 20:26
PM MAIL   Вверх
Zorak
Дата 10.11.2008, 21:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 720
Регистрация: 13.11.2007

Репутация: нет
Всего: 3



Цитата(FunkyFlow @ 10.11.2008,  20:25)
попробуй так:

K = M - 1;
for(i=0;i<=K;i++)
    {
        for(j=0;j<N;j++)
            {
                buf = array[i][j];    
                array[i][j] = array[K][j];
                array[K--][j] = buf;
            }
    }

в таком случае получаеться какаято белеберда =))
http://pic.ipicture.ru/uploads/081110/7389/7sXe6iHG0c.jpg

З.Ы. Может проблема в алгоритме ?...(
З.Ы.Ы. только только должно быть так в принципе:f or(i=0;i<K;i++) а не for(i=0;i<=K;i++) и тогда не K = M а не K = M - 1;

Это сообщение отредактировал(а) Zorak - 10.11.2008, 21:21


--------------------
Знание - сила. А сила есть, ума не надо...
Занимаюсь интернет бизнесом и ищу новых партнеров. Кому интересно - обращайтесь в ЛС, скайп или мыло.
PM MAIL ICQ   Вверх
Zorak
Дата 10.11.2008, 21:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 720
Регистрация: 13.11.2007

Репутация: нет
Всего: 3



мм пишу в новом торике - я в принципе догадался почему так происходит... К-- надо писать ПОСЛЕ закрития фигурной дужки.. вот так:
Код

K = M;
for(i=0;i<K;i++)
   {
        for(j=0;j<N;j++)
          {
                buf = array[i][j];    
                array[i][j] = array[K][j];
                array[K][j] = buf;
        }
K--;    
}

так как  второй цикл фор исполняеться 6 раз.. и одновременно наше К 6 раз ументшаеться..... вот оно и мутит (..а терь новий вопрос: как ето виправить *?
З.Ы. при таком раскладе только заполняет и виводит)

Это сообщение отредактировал(а) Zorak - 10.11.2008, 21:28


--------------------
Знание - сила. А сила есть, ума не надо...
Занимаюсь интернет бизнесом и ищу новых партнеров. Кому интересно - обращайтесь в ЛС, скайп или мыло.
PM MAIL ICQ   Вверх
J0ker
Дата 10.11.2008, 22:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 986
Регистрация: 17.9.2008

Репутация: 9
Всего: 14



--

Это сообщение отредактировал(а) J0ker - 10.11.2008, 22:14


--------------------
user posted image
PM MAIL   Вверх
Zorak
Дата 10.11.2008, 22:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 720
Регистрация: 13.11.2007

Репутация: нет
Всего: 3



Цитата(J0ker @ 10.11.2008,  22:14)
у вас К не уменьшается

почему ?(


--------------------
Знание - сила. А сила есть, ума не надо...
Занимаюсь интернет бизнесом и ищу новых партнеров. Кому интересно - обращайтесь в ЛС, скайп или мыло.
PM MAIL ICQ   Вверх
J0ker
Дата 10.11.2008, 22:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 986
Регистрация: 17.9.2008

Репутация: 9
Всего: 14



Цитата(Zorak @ 10.11.2008,  22:14)
Цитата(J0ker @ 10.11.2008,  22:14)
у вас К не уменьшается

почему ?(

пардон, просмотрел

Добавлено через 4 минуты и 24 секунды
у вас размерность массива M, значит индекс последнего элемента M-1


--------------------
user posted image
PM MAIL   Вверх
FunkyFlow
Дата 10.11.2008, 22:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 26.8.2008

Репутация: нет
Всего: нет



Что конткретно ты хочешь от этой программы?
PM MAIL   Вверх
Zorak
Дата 10.11.2008, 22:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 720
Регистрация: 13.11.2007

Репутация: нет
Всего: 3



Цитата(FunkyFlow @ 10.11.2008,  22:25)
Что конткретно ты хочешь от этой программы?

Есть масив 6 на 6... мне нужно чтоб 1 строку поменяло с последней, вторую с предпоследней  и т д пока нее дойдет к горизонтайльной оси)

Добавлено через 2 минуты и 48 секунд
Всё.. решил... вот правильний код
Код

K = M;
for(i=0;i<K;i++)
   {
    --K;
        for(j=0;j<N;j++)
          {
                buf = array[i][j];    
                array[i][j] = array[K][j];
                array[K][j] = buf;
        }
 
}

Проблема в том... что я не досмотрел регистр переменной =))).... тоесть вместо большой написал маленькую k...


--------------------
Знание - сила. А сила есть, ума не надо...
Занимаюсь интернет бизнесом и ищу новых партнеров. Кому интересно - обращайтесь в ЛС, скайп или мыло.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1288 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.