📄 linear.cpp
字号:
#include "StdAfx.h"
#include ".\linear.h"
#include<iostream>
using namespace std;
Linear::Linear(void)
{
num=NULL;
m=0;
n=0;
}
Linear::~Linear(void)
{
delete[]num;
}
Linear::Linear(int **m1,int a,int b)
{
m=a;
n=b;
Inital(m1,m,n);
}
void Linear::Inital(int **m,int a, int b)
{
int i,j;
if(a!=0&&b!=0)
{
if(m==NULL)
{
num=NULL;
return;
}
num=new (int*)[a];
for(i=0;i<a;i++)
num[i]=new int[b];
if(num==NULL)
{
cerr<<"Error,Not sucessful allocation of memory!";
exit(1);
}
for( i=0;i<a;i++)
for( j=0;j<b;j++)
num[i][j]=m[i][j];
}
else
Linear();
}
bool Linear::Find(int *m1)
{
if(m==NULL||num==NULL)
return false;
else{
int i,j;
for( i=0;i<m;i++)
for(j=0;j<n;j++)
if(num[i][j]==m1[i][j])
continue;
else
break;
if(j==n)
return true;
else
return false;
}
}
int *operator+(int *t1,int *t2)
{
for(int i=0;i<n;i++)
t1[i]+=t2[i];
return t1;
}
bool Linear::IsLinear()
{
int i,j;
int *temp1,*temp2;
for(i=0;i<m;i++)
{
temp1=num[i];
for(j=i+1;j<m;j++)
{
temp2=num[j];
if(Find(temp2+temp1)==false)
break;
}
}
if(j==m)
return true;
else{
cout<<"Is Not Linear code!"<<endl;
return false;
}
}
int operator-(int *t1,int *t2)
{
int i,j=0;
for(i=0;i<n;i++)
j+=(t1[i]-t2[i]+2)%2;
return j;
}
int Linear::MinD()
{
int i,j,min=n,temp=0;
int *temp1,*temp2;
for(i=0;i<m;i++)
{
temp1=num[i];
for(j=i+1;j<m;j++)
{
temp2=num[j];
temp=temp1-temp2;
if(min>temp)
min=temp;
}
}
return min;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -