papam
16-01-2006, 21:46
Помогите доделать прогу,чтоб она работала,вот условие:
Дана матрица порядка MxN (M строк, N столбцов). Необходимо заполнить ее значениями и написать функцию, осуществляющую циклический сдвиг строк и/или столбцов массива указанное количество раз и в указанную сторону.
Прога ни чего не выводит и выдает ошибку.Помогите,очень нужно!Пожалуста!
Вот прога:
#include<iostream.h>
void main()
{
bool ModeSdvig=true; //true столбцы, false-строки
bool Naprav=true; //true-влево,вверх false-вправо,вниз
float** mass,*coxp;
int M,N;
// здесь ввод значений M, N
N=10;
M=10;
mass=new float*[M];
for(int i=0;i<M;i++)mass[i]=new float[N];
if(ModeSdvig)
{
coxp=new float[M];
if(Naprav)
{
for(int j=0;i<M;j++)coxp[j]=mass[j][0];
for(int i=1;i<N;i++)for(int j=0;i<M;j++)mass[j][i-1]=mass[j][i];
for( j=0;i<M;j++)mass[j][N-1]=coxp[j];
}
else
{
for(int j=0;i<M;j++)coxp[j]=mass[j][N-1];
for(int i=N-2;i>=0;i++)for(int j=0;i<M;j++)mass[j][i+1]=mass[j][i];
for( j=0;i<M;j++)mass[j][0]=coxp[j];
}
}
else
{
coxp=new float[N];
if(Naprav)
{
for(int j=0;i<N;j++)coxp[j]=mass[0][j];
for(int i=1;i<M;i++)for(int j=0;i<N;j++)mass[i-1][j]=mass[i][j];
for( j=0;i<N;j++)mass[M-1][j]=coxp[j];
}
else
{
for(int j=0;i<N;j++)coxp[j]=mass[M-1][j];
for(int i=M-2;i>=0;i++)for(int j=0;i<N;j++)mass[i+1][j]=mass[i][j];
for( j=0;i<N;j++)mass[0][j]=coxp[j];
}
}
delete[] coxp;
for( i=0;i<M;i++)delete[] mass[i];
delete[] mass;
}
Дана матрица порядка MxN (M строк, N столбцов). Необходимо заполнить ее значениями и написать функцию, осуществляющую циклический сдвиг строк и/или столбцов массива указанное количество раз и в указанную сторону.
Прога ни чего не выводит и выдает ошибку.Помогите,очень нужно!Пожалуста!
Вот прога:
#include<iostream.h>
void main()
{
bool ModeSdvig=true; //true столбцы, false-строки
bool Naprav=true; //true-влево,вверх false-вправо,вниз
float** mass,*coxp;
int M,N;
// здесь ввод значений M, N
N=10;
M=10;
mass=new float*[M];
for(int i=0;i<M;i++)mass[i]=new float[N];
if(ModeSdvig)
{
coxp=new float[M];
if(Naprav)
{
for(int j=0;i<M;j++)coxp[j]=mass[j][0];
for(int i=1;i<N;i++)for(int j=0;i<M;j++)mass[j][i-1]=mass[j][i];
for( j=0;i<M;j++)mass[j][N-1]=coxp[j];
}
else
{
for(int j=0;i<M;j++)coxp[j]=mass[j][N-1];
for(int i=N-2;i>=0;i++)for(int j=0;i<M;j++)mass[j][i+1]=mass[j][i];
for( j=0;i<M;j++)mass[j][0]=coxp[j];
}
}
else
{
coxp=new float[N];
if(Naprav)
{
for(int j=0;i<N;j++)coxp[j]=mass[0][j];
for(int i=1;i<M;i++)for(int j=0;i<N;j++)mass[i-1][j]=mass[i][j];
for( j=0;i<N;j++)mass[M-1][j]=coxp[j];
}
else
{
for(int j=0;i<N;j++)coxp[j]=mass[M-1][j];
for(int i=M-2;i>=0;i++)for(int j=0;i<N;j++)mass[i+1][j]=mass[i][j];
for( j=0;i<N;j++)mass[0][j]=coxp[j];
}
}
delete[] coxp;
for( i=0;i<M;i++)delete[] mass[i];
delete[] mass;
}