Динамические Массивы

Rinulik

New member
27.03.2013
2
0
#1
Даны натуральное число n, действительная квадратная матрица порядка n. Построить последовательность b1, b2, …, bn из нулей и единиц, в которой bi = 1 тогда и только тогда, когда в i-ой строке матрицы есть хотя бы один отрицательный элемент. Все массивы в программе должны быть динамическими.

C++:
#include<conio.h>
#include<iostream.h>
#include<ctime.h>


int main(int argc, char* argv[])
{
int n;
randomize();
cout<<"VVedite kol-vo elementov";
cin >>n;
int *a= new int [n];
int i;
for (int i=0; i<n; i++)
{
a[i]=random(20);
cout<<a[i]<<" ";
}
int *b= new int[n];
for (int i=0; i<n; i++)
{
for (int j=0; j<n; j++)
{
a[i][j]=random()%10-5;			 
if (a[i][j]<0) 
{
b[i]=1; break;
}
b[i]=0;
}	  
}
cout<<"array b: "<<endl;
for (int i=0; i<n; i++)
delete [] a[i]; 
cout<<b[i]<<" ";

delete []a;
delete []b;
getch();
return 0;
}
компилятор ругается. что здесь не так?помогите исправить.
 
R

rrrFer

#2
a=random(20);
ты работаешь с a как с одномерным массивом, и это верно, т.к. он одномерный

if (a[j]<0)
а тут ты работаешь с ним как с двумерным, потому что скопипастил откуда-то этот кусок кода.

Тем, у кого в детстве был конструктор знакома проблема когда детали из одно конструктора не подходят к другому. Тут примерно тоже самое )