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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Глюк с матрицей 
V
    Опции темы
mgkit
Дата 3.5.2009, 10:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Код

//---------------------------------------------------------------------------

#include <vcl.h>
#include <iostream.h>
#include <conio.h>
#include <math.h>
#pragma hdrstop

//---------------------------------------------------------------------------

#pragma argsused
main()
{
int i,j,S=0,K=0;
printf("Quantity elements of mas = 10,10\n");
int *a=new int[10,10];
printf("\n---------------------------------\n\n");
 for(i=0; i<10; i++) {
  for(j=0; j<10; j++)
  {
    *(a+i,a+j)=random(10);
  }
 }
printf("\nThis is random mas:\n");
 for(i=0; i<10; i++) {
  for(j=0; j<10; j++)
  {
    cout<<*(a+i,a+j)<<" ";
  }
  cout<<endl;
 }
delete[] a;
getch ();
}
//---------------------------------------------------------------------------

В выводе всегда одни и те же числа. Они вроде до 10 и целые, но всегда одни и те же. Так ещё и совпадают все столбцы, как будто одну строчку вывожу 10 раз. Я где то напортачил в дин матрице. Наверно ввод её не правильный, но С++ всё прощает и это усложняет дело. Мне надо обязательно использовать дин матрицу, потому и делаю через указатели.

Это сообщение отредактировал(а) mgkit - 3.5.2009, 10:18
PM MAIL   Вверх
zim22
Дата 3.5.2009, 10:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


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

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



как вы думаете, что здесь происходит? 
Код

int *a=new int[10,10,99, "hello", int(), std::cout << "yo", 666,9,-19,10,1,10];

ответ: создаётся массив из десяти объектов типа int. Только самое правое значение будет служить размерностью массива.  Так работает "оператор запятая". 

Это сообщение отредактировал(а) zim22 - 3.5.2009, 10:28


--------------------
PM MAIL   Вверх
TrЭin3e
Дата 3.5.2009, 15:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



если я правильно понял вопрос, вам необходимо использовать функцию randomize() из библиотеки stdlib.h, перед заполнением матрицы.
суть функции randomize() в С/С++ такая же как и в Pascal.

Цитата(mgkit @  3.5.2009,  10:17 Найти цитируемый пост)
Они вроде до 10 и целые

это потому, что вы используете random(10), который генерирует числа от 0 до 10, прием, как вы звметили, целые.
PM MAIL   Вверх
mgkit
Дата 3.5.2009, 19:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата

ответ: создаётся массив из десяти объектов типа int. Только самое правое значение будет служить размерностью массива.  Так работает "оператор запятая". 

Ой, извините, сначала изучали pascal - от него осталось, а как тогда ввести дин двумерную матрицу? Ну я то есть понимаю, что для двумерной просто 
Код
a[10][10]
 А вот с указателями тогда как? 
Код
int *a=new int[10][10]
  - не воспринимает.
Цитата

это потому, что вы используете random(10), который генерирует числа от 0 до 10, прием, как вы звметили, целые.

Да это понятно, я не понимал почему один и те же числа выводит (каждый раз при запуске выводил  6 2 0 1 5 7 8 2 4 6). После подключения библиотеки и прописки randomize() в коде - всё нормально, каждый раз разные числа. 
PM MAIL   Вверх
zim22
Дата 3.5.2009, 19:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


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

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



Цитата(mgkit @  3.5.2009,  19:42 Найти цитируемый пост)
 А вот с указателями тогда как? 

[FAQ] Динамические массивы


--------------------
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

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

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

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

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


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

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


 




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


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

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