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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.08.2009, 11:08   #1
mazak
Пользователь
 
Аватар для mazak
 
Регистрация: 10.07.2009
Сообщений: 29
Лампочка Координаты матрицы

Здравствуйте уважаемые Форумчане!
Попробвал создать простенькую матрицу в консоле ,
вроде разобрался с простым распределением значений массива (я так думаю по крайней мере).
Но вот в чем загвоздка, не могу осуществить пользовательский ввод, к примеру для первого элемента массива (i) pole [i][a] так чтобы изменение значения второго элемента всегда начиналось с координаты pole[i][2]=1 введенной пользователем,
повторный ввод для (i) приводит к увеличению индекса на 1 и уменьшению второго элемента(a) на 1.
"Объясните чего вы хотите?" если мне не удалось объяснить словами то, вот графический требуемый результат.

Я ввожу координату i
результат:

0 0 0
0 0 0
1 0 0
Повторный ввод i
результат:

0 0 0
2 0 0
1 0 0
Повторный ввод i
результат:

0 0 0
2 0 0
1 0 1

И самый пожалуй важный вопрос - правильно ли я организовал эту матрицу?
Столкните с мертвой точки, я уже думал про указатели может быть как в односвязном списке с помощью пары вспомогательных указателей обозначить границы ввода , но пока не представляю себе как это реализовать.

Через цикл не получается переписывается вся нижняя строка одним индексом.

Заранее благодарен за ваши ответы и внимание.
С уважением Mazak.

"взята матрица 3Х3 для упрощения демонстрации."






PHP код:
void func1(int pole[10][10])
{
        
int kartinki[100];
        
        
int bild=0;

      for(
int i=0i<9;i++)
          {                 
           
kartinki[i]=bild;
           
//bild++;
          
}
          
      for(
int a=0a<3a++)
          {
      for(
int i=0i<3i++)
          {
           
          
pole[i][a]=kartinki[i*3+a];
          
            
cout<< pole[i][a];

          
//cout<<"["<<i<<"]["<<a<<"]"<<pole[i][a];
          
cout<<" ";


          }
          
cout<<endl;
          }

Благими намерениями вымощена дорога в ад
mazak вне форума Ответить с цитированием
Старый 06.08.2009, 11:25   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

т.е. тебе нужно что-то типа такого?
Код:
//---------------------------------------------------------------------------

#pragma hdrstop

#include <tchar.h>
#include <iostream.h>
#include <stdio.h>
//---------------------------------------------------------------------------

#pragma argsused
 int a[3][3];

void ou(){
 for (int i = 0; i < 3; i++) {
  for (int j=1; j < 3; j++) {
   cout<<a[i][j]<<"\t";
  }
  cout<<"\n";
 }
}
int _tmain(int argc, _TCHAR* argv[])
{
 int x,y;
 char c;
do {
 cout<<"X "; cin>>x;
 cout<<"Y "; cin>>y;
 cout<<"Value"; cin>>a[x][y];
 ou();
 cout<<"Q if exit ";
 cin>>c;
}
while (c!='q');
	return 0;
}
//---------------------------------------------------------------------------
I'm learning to live...

Последний раз редактировалось Stilet; 06.08.2009 в 11:28.
Stilet вне форума Ответить с цитированием
Старый 06.08.2009, 16:55   #3
mazak
Пользователь
 
Аватар для mazak
 
Регистрация: 10.07.2009
Сообщений: 29
По умолчанию

Хороший пример, и все таки как не вводя значения второго элемента массива создать условия наполнения с нижней строки, т.е. какое бы я значение для i не вводил бы отсчет велся бы от нижней строки. Еесли там есть нуль, то закрываем его текущим индексом, если нет нуля, перемещаемся на клетку выше и меняем индекс на один больше...
можно проверить конечно циклами if, но это адский труд на 10 страниц а то и более в зависимости от размера матрицы...
Благими намерениями вымощена дорога в ад
mazak вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обращение матрицы методом союзной матрицы dofmat Помощь студентам 6 03.10.2011 15:01
Сумма четных элементов матрицы. Произведение элементов 3-го столбца. Минимальный элемент матрицы. renovare Помощь студентам 2 03.07.2009 21:13
Координаты расставления. Манжосов Денис :) Помощь студентам 5 10.10.2008 23:51
Координаты ОУ? Fainder Общие вопросы Delphi 9 15.10.2007 20:59
координаты Aram Общие вопросы C/C++ 5 08.06.2007 20:03