#include <iostream>
#include <iomanip>
#include <conio.h>
#include <cstdlib>
#include <ctime>
using namespace std;
int n=9;
int i,iz,jz,j,m;
char key;
bool flag;
void output(int **a)
{
for(int i=0; i<n;i++)
{
for(int j=0; j<n;j++)
cout << setw(2) << a[i][j]<< ' ';
cout << endl;
}
}
int **vvod()
{
int **a=new int*[n];//создаём массив указателей на строки
for(int i=0;i<n;i++)
{
a[i]=new int[n];//создаём строки
}
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
a[i][j]=rand()%5;//теперь с индексацией всё впорядке
}
return a;
}
int ch(int **a)
{
int k, tmp;
bool flag;
flag=false;
for(int i=iz; i<n;i++)
{
if (a[i][jz]!=0)
{
flag=true;
for(int k=0; i<n;k++)
{
tmp=a[iz][k];
a[iz][k]=a[i][k];
a[i][k]=tmp;
}
}
if (a[n-1][n-1]==0)
for(int i=0; i<n-1;i++)
if (a[i][jz]!=0)
{
flag=true;
for(int k=0; k<n;k++)
{
tmp=a[iz][k];
a[iz][k]=a[i][k];
a[i][k]=tmp;
}
}
return 0;
}
}
void im(int **a)
{
int k,l;
{
flag=false;
for (int j=0;j<n; j++)
{
i=0;
k=0;
for (int i=0;i<n; i++)
if(a[i][j]==0)
k++;
if (k==n)
{
cout<<"impossible"<<endl;
flag=true;
}
if(flag=true)
break;
}
for (int i=0;i<n; i++)
{
j=0;
k=0;
for (int j=0;j<n; j++)
if(a[i][j]==0)
k++;
if (k==n)
{
cout<<"impossible"<<endl;
flag=true;
}
if(flag=true)
break;
}
}
}
void ChColumn(int **a)
{
int k,tmp;
bool flag;
flag=false;
for(int j=jz; j<n;j++)
{
if (a[iz][j]!=0) ;
{
flag=true;
for(int k=0; k<n;k++)
{
tmp=a[k][jz];
a[k][jz]=a[k][j];
a[k][j]=tmp;
}
}
if (a[n-1][n-1]==0)
for(int j=0; j<n-1;j++)
if (a[iz][j]!=0);
{
flag=true;
for(int k=0; k<n;k++)
{
tmp=a[k][jz];
a[k][jz]=a[k][j];
a[k][j]=tmp;
}
}
if(flag=false)
cout<<"impossible"<<endl;
}
}
void zero(int **a)
{
int i,j;
for (int i=0;i<n; i++)
if(a[i][i]==0)
{
iz=i;
jz=i;
ch(a);
}
j=0;
for (int j=0;j<n; j++)
for (int i=0;i<n; i++)
if(a[i][i]==0)
ch(a);
for (int i=0;i<n; i++)
if(a[i][i]==0)
ChColumn(a);
}
int main (void)
{
srand((unsigned)time(NULL));
cout<<"\nLab5"<<endl<<"\nInput number of array's members: ";
cin>>n;
int **arr;
arr=vvod();
im(arr);
zero(arr);
output(arr);
cout<<"Change matrix:"<<endl;
output(arr);
getch();
return 0;
}
uses crt;
var
a:array[1..10,1..10] OF integer;
n, {size of matrix}
i,iz,jz,j,m:integer; {indexs rov, culumn}
key:char;
flag:boolean;
procedure output;
begin
for i:=1 to n do
begin
for j:=1 to n do
write( a[i,j], ' ');
writeln;
end;
end;
Procedure CH;
var k:integer;
tmp:integer;
flag:boolean;
begin
Flag:=false;
For i:=iz to n do
begin
If a[i,jz]<>0 then
begin
flag:=true;
for K:=1 to n do
begin
tmp:=a[iz,k];
a[iz,k]:=a[i,k];
a[i,k]:=tmp;
end;
end;
If a[n,n]=0 then
for i:=1 to n-1 do
If a[i,jz]<>0 then
begin
flag:=true;
for K:=1 to n do
begin
tmp:=a[iz,k];
a[iz,k]:=a[i,k];
a[i,k]:=tmp;
end;
end;
end;
end;
procedure ran;
begin
randomize;
writeln('input size of matrix');
readln(n);
for i:=1 to n do
for j:=1 to n do
a[i,j]:=random(5);
output;
end;
procedure im;
var k,l:integer;
begin
flag:=false;
for j:=1 to n do
begin
I:=0;
k:=0;
repeat
I:=i+1;
if a[i,j]=0 then k:=k+1;
if k=n then
begin
writeln('imposible');
flag:=true;
end;
until i=n;
if flag=true then break;
end;
for i:=1 to n do
begin
j:=0;
k:=0;
repeat
j:=j+1;
if a[i,j]=0 then k:=k+1;
if k=n then
begin
writeln('imposible ');
flag:=true;
end;
until j=n;
if flag=true then break;
end;
end;
Procedure ChColumn;
Var k,tmp:integer;
flag:boolean;
begin
Flag:=false;
For j:=jz to n do
begin
If a[iz,j]<>0 then
begin
flag:=true;
for K:=1 to n do
begin
tmp:=a[k,jz];
a[k,jz]:=a[k,j];
a[k,j]:=tmp;
end;
end;
If a[n,n]=0 then
for J:=1 to n-1 do
If a[iz,j]<>0 then
begin
flag:=true;
for K:=1 to n do
begin
tmp:=a[k,jz];
a[k,jz]:=a[k,j];
a[k,j]:=tmp;
end;
end;
end;
if flag=false then
writeln('Imposible');
end;
procedure Zero;
var i,j:integer;
begin
for i:=1 to n do
if a[i,i]=0 then
begin
iz:=i;
jz:=i;
CH;
end;
j:=0;
repeat
j:=J+1;
for i:=1 to n do
if a[i,i]=0 then CH;
until j=n;
For i:=1 to n do
if a[i,i]=0 then ChColumn;
end;
begin
clrscr;
im;
ran;
Zero;
writeln('Change matrix:');
output;
readln;
end.
#include <iostream>
#include <iomanip>
#include <conio.h>
#include <cstdlib>
#include <ctime>
using namespace std;
int n=9;
int i,iz,jz,j,m;
char key;
bool flag;
void output(int **a)
{
for(int i=0; i<n;i++)
{
for(int j=0; j<n;j++)
cout << setw(2) << a[i][j]<< ' ';
cout << endl;
}
}
int **vvod()
{
int **a=new int*[n];//создаём массив указателей на строки
for(int i=0;i<n;i++)
{
a[i]=new int[n];//создаём строки
}
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
a[i][j]=rand()%5;//теперь с индексацией всё впорядке
}
return a;
}
int ch(int **a)
{
int tmp;
bool flag;
flag=false;
for(int i=iz; i<n;i++)
{
if (a[i][jz]!=0)
{
break;
for(int k=0; i<n;k++)
{
tmp=a[iz][k];
a[iz][k]=a[i][k];
a[i][k]=tmp;
}
}
if (a[n-1][n-1]==0)
//for(int i=0; i<n-1;i++)
if (a[i][jz]!=0)
{
break;
for(int k=0; k<n;k++)
{
tmp=a[iz][k];
a[iz][k]=a[i][k];
a[i][k]=tmp;
}
}
return 0;
}
}
bool im(int **a)
{
int k;
{
for (int j=0;j<n; j++)
{
i=0;
k=0;
for (int i=0;i<n; i++)
if(a[i][j]==0)
k++;
if (k==n)
{
return false;
}
}
}
for (int i=0;i<n; i++)
{
j=0;
k=0;
for (int j=0;j<n; j++)
if(a[i][j]==0)
k++;
if (k==n)
{
return false;
}
}
}
/*void ChColumn(int **a)
{
int k,tmp;
bool flag;
flag=false;
for(int j=jz; j<n;j++)
{
if (a[iz][j]!=0) ;
{
flag=true;
for(int k=0; k<n;k++)
{
tmp=a[k][jz];
a[k][jz]=a[k][j];
a[k][j]=tmp;
}
}
if (a[n-1][n-1]==0)
for(int j=0; j<n-1;j++)
if (a[iz][j]!=0);
{
flag=true;
for(int k=0; k<n;k++)
{
tmp=a[k][jz];
a[k][jz]=a[k][j];
a[k][j]=tmp;
}
}
if(flag=false)
cout<<"impossible"<<endl;
}
}*/
void zero(int **a)
{
for (int i=0;i<n; i++)
if(a[i][i]==0)
{
iz=i;
jz=i;
ch(a);
}
j=0;
for (int j=0;j<n; j++)
for (int i=0;i<n; i++)
if(a[i][i]==0)
ch(a);
for (int i=0;i<n; i++)
if(a[i][i]==0)
ChColumn(a);
}
int main (void)
{
srand((unsigned)time(NULL));
cout<<"\nLab5"<<endl<<"\nInput number of array's members: ";
cin>>n;
int **arr;
if( !im(arr))
{
cout<<"impossible"<<endl;
return 0;
}
arr=vvod();
zero(arr);
output(arr);
cout<<"Change matrix:"<<endl;
output(arr);
getch();
return 0;
}
#include <iostream>
#include <iomanip>
#include <conio.h>
#include <cstdlib>
#include <ctime>
using namespace std;
int n=9;
int i,iz,jz,j,m;
char key;
bool flag;
void output(int **a)
{
for(int i=0; i<n;i++)
{
for(int j=0; j<n;j++)
cout << setw(2) << a[i][j]<< ' ';
cout << endl;
}
}
int **vvod()
{
int **a=new int*[n];//создаём массив указателей на строки
for(int i=0;i<n;i++)
{
a[i]=new int[n];//создаём строки
}
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
a[i][j]=rand()%5;//теперь с индексацией всё впорядке
}
return a;
}
/*int ch(int **a)
{
int tmp;
bool flag;
flag=false;
for(int i=iz; i<n;i++)
{
if (a[i][jz]!=0)
{
break;
for(int k=0; i<n;k++)
{
tmp=a[iz][k];
a[iz][k]=a[i][k];
a[i][k]=tmp;
}
}
if (a[n-1][n-1]==0)
//for(int i=0; i<n-1;i++)
if (a[i][jz]!=0)
{
break;
for(int k=0; k<n;k++)
{
tmp=a[iz][k];
a[iz][k]=a[i][k];
a[i][k]=tmp;
}
}
return 0;
}
}*/
bool im(int **a)
{
int k;
{
for (int j=0;j<n; j++)
{
i=0;
k=0;
for (int i=0;i<n; i++)
if(a[i][j]==0)
k++;
if (k==n)
{
return false;
}
}
}
for (int i=0;i<n; i++)
{
j=0;
k=0;
for (int j=0;j<n; j++)
if(a[i][j]==0)
k++;
if (k==n)
{
return false;
}
}
}
void ch(int **a)
{
int k,tmp;
for(int k=0; k<n;k++)
{
tmp=a[k][jz];
a[k][jz]=a[k][j];
a[k][j]=tmp;
}
}
void ChColumn(int **a)
{
int k,tmp;
bool flag;
flag=false;
for(int j=jz; j<n;j++)
{
if (a[iz][j]!=0) ;
{
break;
ch(a);
}
if (a[n-1][n-1]==0)
for(int j=0; j<n-1;j++)
if (a[iz][j]!=0);
{
break;
ch(a);
}
if(flag=false)
cout<<"impossible"<<endl;
}
}
void zero(int **a)
{
for (int i=0;i<n; i++)
if(a[i][i]==0)
{
iz=i;
jz=i;
ChColumn(a);
}
j=0;
for (int j=0;j<n; j++)
for (int i=0;i<n; i++)
if(a[i][i]==0)
ChColumn(a);
for (int i=0;i<n; i++)
if(a[i][i]==0)
ChColumn(a);
}
int main (void)
{
srand((unsigned)time(NULL));
cout<<"\nLab5"<<endl<<"\nInput number of array's members: ";
cin>>n;
int **arr;
if( !im(arr))
{
cout<<"impossible"<<endl;
return 0;
}
arr=vvod();
zero(arr);
output(arr);
cout<<"Change matrix:"<<endl;
output(arr);
getch();
return 0;
}
#include <iostream>
#include <iomanip>
#include <conio.h>
#include <cstdlib>
#include <ctime>
using namespace std;
int n=9;
int i,iz,jz,j,m;
char key;
bool flag;
void output(int **a)
{
for(int i=0; i<n;i++)
{
for(int j=0; j<n;j++)
cout << setw(2) << a[i][j]<< ' ';
cout << endl;
}
}
int **vvod()
{
int **a=new int*[n];//создаём массив указателей на строки
for(int i=0;i<n;i++)
{
a[i]=new int[n];//создаём строки
}
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
a[i][j]=rand()%5;//теперь с индексацией всё впорядке
}
return a;
}
/*int ch(int **a)
{
int tmp;
bool flag;
flag=false;
for(int i=iz; i<n;i++)
{
if (a[i][jz]!=0)
{
break;
for(int k=0; i<n;k++)
{
tmp=a[iz][k];
a[iz][k]=a[i][k];
a[i][k]=tmp;
}
}
if (a[n-1][n-1]==0)
//for(int i=0; i<n-1;i++)
if (a[i][jz]!=0)
{
break;
for(int k=0; k<n;k++)
{
tmp=a[iz][k];
a[iz][k]=a[i][k];
a[i][k]=tmp;
}
}
return 0;
}
}*/
bool im(int **a)
{
int k;
{
for (int j=0;j<n; j++)
{
i=0;
k=0;
for (int i=0;i<n; i++)
if(a[i][j]==0)
k++;
if (k==n)
{
return false;
}
}
}
for (int i=0;i<n; i++)
{
j=0;
k=0;
for (int j=0;j<n; j++)
if(a[i][j]==0)
k++;
if (k==n)
{
return false;
}
}
}
void ch(int **a)
{
int k,tmp;
for(int k=0; k<n;k++)
{
tmp=a[k][jz];
a[k][jz]=a[k][j];
a[k][j]=tmp;
}
}
void ChColumn(int **a)
{
int k,tmp;
bool flag;
flag=false;
for(int j=jz; j<n;j++)
{
if (a[iz][j]!=0) ;
{
break;
ch(a);
}
if (a[n-1][n-1]==0)
for(int j=0; j<n-1;j++)
if (a[iz][j]!=0);
{
break;
ch(a);
}
if(flag=false)
cout<<"impossible"<<endl;
}
}
void zero(int **a)
{
for (int i=0;i<n; i++)
if(a[i][i]==0)
{
iz=i;
jz=i;
ChColumn(a);
}
j=0;
for (int j=0;j<n; j++)
for (int i=0;i<n; i++)
if(a[i][i]==0)
ChColumn(a);
for (int i=0;i<n; i++)
if(a[i][i]==0)
ChColumn(a);
}
int main (void)
{
srand((unsigned)time(NULL));
cout<<"\nLab5"<<endl<<"\nInput number of array's members: ";
cin>>n;
int **arr;
if( !im(arr))
{
cout<<"impossible"<<endl;
return 0;
}
arr=vvod();
output(arr);
zero(arr);
cout<<"Change matrix:"<<endl;
output(arr);
getch();
return 0;
}
#include <iostream>
#include <iomanip>
#include <conio.h>
#include <cstdlib>
#include <ctime>
using namespace std;
int n=9;
int i,iz,jz,j,m;
char key;
bool flag;
void output(int **a)
{
for(int i=0; i<n;i++)
{
for(int j=0; j<n;j++)
cout << setw(2) << a[i][j]<< ' ';
cout << endl;
}
}
int **vvod()
{
int **a=new int*[n];//создаём массив указателей на строки
for(int i=0;i<n;i++)
{
a[i]=new int[n];//создаём строки
}
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
a[i][j]=rand()%5;//теперь с индексацией всё впорядке
}
return a;
}
/*int ch(int **a)
{
int tmp;
bool flag;
flag=false;
for(int i=iz; i<n;i++)
{
if (a[i][jz]!=0)
{
break;
for(int k=0; i<n;k++)
{
tmp=a[iz][k];
a[iz][k]=a[i][k];
a[i][k]=tmp;
}
}
if (a[n-1][n-1]==0)
//for(int i=0; i<n-1;i++)
if (a[i][jz]!=0)
{
break;
for(int k=0; k<n;k++)
{
tmp=a[iz][k];
a[iz][k]=a[i][k];
a[i][k]=tmp;
}
}
return 0;
}
}*/
bool im(int **a)
{
int k;
{
for (int j=0;j<n; j++)
{
i=0;
k=0;
for (int i=0;i<n; i++)
if(a[i][j]==0)
k++;
if (k==n)
{
return false;
}
}
}
for (int i=0;i<n; i++)
{
j=0;
k=0;
for (int j=0;j<n; j++)
if(a[i][j]==0)
k++;
if (k==n)
{
return false;
}
}
}
void ch(int **a)
{
int k,tmp;
for(int k=0; k<n;k++)
{
tmp=a[k][jz];
a[k][jz]=a[k][j];
a[k][j]=tmp;
}
}
void ChColumn(int **a)
{
int k,tmp;
bool flag;
flag=false;
for(int j=jz; j<n;j++)
{
if (a[iz][j]!=0)
{
ch(a);
break;
}
if (a[n-1][n-1]==0)
for(int j=0; j<n-1;j++)
if (a[iz][j]!=0)
{
ch(a);
break;
}
if(flag=false)
cout<<"impossible"<<endl;
}
}
void zero(int **a)
{
for (int i=0;i<n; i++)
if(a[i][i]==0)
{
iz=i;
jz=i;
ChColumn(a);
}
j=0;
for (int j=0;j<n; j++)
for (int i=0;i<n; i++)
if(a[i][i]==0)
ChColumn(a);
for (int i=0;i<n; i++)
if(a[i][i]==0)
ChColumn(a);
}
int main (void)
{
srand((unsigned)time(NULL));
cout<<"\nLab5"<<endl<<"\nInput number of array's members: ";
cin>>n;
int **arr;
if( !im(arr))
{
cout<<"impossible"<<endl;
return 0;
}
arr=vvod();
output(arr);
zero(arr);
cout<<"Change matrix:"<<endl;
output(arr);
getch();
return 0;
}
Если Вы уже зарегистрированы на Портале - войдите в систему, если Вы еще не регистрировались - пройдите простую процедуру регистрации.