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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 31.05.2009, 00:48   #1
Sparkle
Новичок
Джуниор
 
Регистрация: 30.05.2009
Сообщений: 4
По умолчанию массив

Дана матрица. Требуется найти произведение элементов в тех строках, которые не содержат отрицательных элементов.
Вот мой код:
Код:
#include <iostream.h>
#include <iomanip.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>

int main()
{
int n,m,i,j,p,pt;
bool b=0;
cout<<"Vvedite n= ";
cin>>n;
cout<<"Vvedite m= ";
cin>>m;
int **a;
a=new int*[n];
for(i=0;i<n;i++)
 a[i]=new int[m];

for(i=0;i<n;i++)
 for(j=0;j<m;j++)
  {
  cout<<"Vvedite a["<<i<<"]["<<j<<"]= ";
  cin>>a[i][j];
  }
for(i=0;i<n;i++)
 {
  for(j=0;j<m;j++)
   cout<<setw(3)<<a[i][j];
  cout<<endl;
 }
p=1;
for (i=0;i<n;i++)
 {
  pt=1;
  for(j=0;j<n;j++) 
  {
   if(a[i][j]<0)
   {
    b=true; break;
   }
   else pt*=a[i][j];
  }
 if(b) break;
 else p*=pt;
 }
cout<<"Proizvedenie:"<<p<<endl;

for(i=0;i<n;i++)
 delete []a[i];
delete []a;
a=NULL;
return 0;
}
Вроде задача то и простая, однако что-то у меня не получается(((

Модератор: тег CODE

Последний раз редактировалось Sazary; 31.05.2009 в 00:51.
Sparkle вне форума Ответить с цитированием
Старый 31.05.2009, 00:55   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

А в чем проблема? Программа компилируется и выводит результат.

Вот так цикл измените:
Код:
for (i=0;i<n;i++)
 {
  pt=1;
  b = false;
  for(j=0;j<n;j++)
  {
   if(a[i][j]<0)
   {
    b=true; break;
   }
   else pt*=a[i][j];
  }
 if(b) continue;
 else p*=pt;
 }
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 31.05.2009, 01:54   #3
Sparkle
Новичок
Джуниор
 
Регистрация: 30.05.2009
Сообщений: 4
По умолчанию

так оно мне считает произведение всех элементов, пропуская ту строку, в которой находится хоть один отрицательный элемент, но не выводит произведение для каждой строки по отдельности...
Sparkle вне форума Ответить с цитированием
Старый 31.05.2009, 01:59   #4
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

А вы выводите значение pt в конце цикла, сразу за строчкой
Код:
else p*=pt;
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 31.05.2009, 02:03   #5
Sparkle
Новичок
Джуниор
 
Регистрация: 30.05.2009
Сообщений: 4
По умолчанию

все заработало, спасибо большое!
Sparkle вне форума Ответить с цитированием
Старый 31.05.2009, 02:11   #6
Sparkle
Новичок
Джуниор
 
Регистрация: 30.05.2009
Сообщений: 4
По умолчанию

интересно, а как бы можно было вывести, чтобы ещё писало номер строки?
Sparkle вне форума Ответить с цитированием
Старый 31.05.2009, 02:12   #7
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Сообщение от Sparkle
интересно, а как бы можно было вывести, чтобы ещё писало номер строки?
Ну, вообще-то
Код:
cout<<"stroka "<<i<<" proizvedenie = "<<pt<<endl;
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Массив KREGI Помощь студентам 2 05.03.2009 17:35
Упорядочить массив в порядке возрастания и напечатать входной и исходный массив. TheVenny Помощь студентам 3 26.11.2008 15:06
Массив KpeHDeJIb Помощь студентам 2 27.09.2008 13:59
Массив Айвенго PHP 2 22.02.2008 16:34