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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.09.2010, 19:11   #1
4eburator
 
Регистрация: 29.09.2010
Сообщений: 8
Сообщение проблема с динамическим массивом на С

Надо создать динамический двумерный массив, найти кол-во элементов меньше заданного и перемножить их.
Почему-то при перемножении ответ левый =(

вот код

Код:
#include  <conio.h>
#include  <iostream.h>
#include  <math.h>
#include  <stdlib.h>
#include  <time.h>
#define rnd (rand()/ 32768.0)

int main(int argc, char* argv[])
{long int n,t,p,k,i,j,u; int**mas;
u=1;
 while (u=1){
       clrscr();
       --u;
       randomize();
       fflush(stdin);
 cout<<"vvedite poryadok massiva: "<<'\n';
       cin>>n;

mas=new int*[n];
for ( i=0; i<n; i++)
 mas[i]=new int[n];

   for (i=0;i<n;i++)
   for (j=0;j<n;j++)
   mas[i][j] = i+j;

 cout<<"vvedite T: "<<'\n';
       cin>>t;
       for(i=0;i<n;i++)
         for(j=0;j<n;j++)
         *(*(mas+i)+j)=random(8)+1;

       for(i=0;i<n;i++) { cout<<'\n';
         for(j=0;j<n;j++)
         cout<<*(*(mas+i)+j) <<" ";}
       p=1;
       k=0;
        
       for(i=0;i<n;i++)
             for(j=0;j<n;j++)
                     if (*(*(mas+i)+j)<t)

                            {p*=(*(*mas+i)+j); k++;} // похоже что тут ошибка

             cout<<'\n'<<"kol-vo el-tov: "<<k<<'\n'<<"otvet :"<<p;
             cout<<'\n'<<"esli xotite povtorit', najmite 1 ";
       cin>>u;}
       getch();

        return 0;
}
//---------------------------------------------------------------------------

Последний раз редактировалось Stilet; 30.09.2010 в 08:47.
4eburator вне форума Ответить с цитированием
Старый 29.09.2010, 19:51   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,760
По умолчанию

А вот скажите зачем в этом коде гарадить два варианта обращения к массиву?
p51x вне форума Ответить с цитированием
Старый 29.09.2010, 22:42   #3
4eburator
 
Регистрация: 29.09.2010
Сообщений: 8
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
А вот скажите зачем в этом коде гарадить два варианта обращения к массиву?
Вы про резервирование памяти для указателей и элементов?
4eburator вне форума Ответить с цитированием
Старый 30.09.2010, 08:52   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Имеется ввиду что раз ты умудрился объявить динамический массив плюсплюснуто :
Цитата:
mas=new int*[n];
То можно обращаться к нему как к обычному массиву
Код:
mas[i][j]...
А не классическим способом:
Цитата:
(*(*mas+i)+j)
Иначе просто через malloc зарезервировать открытое поле для массива вместо двух циклов с new
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.09.2010, 17:12   #5
4eburator
 
Регистрация: 29.09.2010
Сообщений: 8
Смех

огромное спасибо, даже не подумала так сделать
4eburator вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с динамическим массивом zumm Общие вопросы Delphi 3 09.07.2010 20:20
Проблема с динамическим массивом TheKnyazz Общие вопросы C/C++ 3 28.04.2009 18:37
Проблема с динамическим массивом dee_lv Помощь студентам 7 09.06.2008 16:58
проблема с динамическим массивом romeo007.06 Общие вопросы Delphi 1 03.04.2008 20:18
проблема с динамическим массивом kommunist Помощь студентам 6 11.11.2007 21:18