📄 code.cpp
字号:
// Code.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <iostream>
using namespace std;
class Data
{
private:
int* Idata;
public:
Data(int* data,int length);
void encipher(int* input_data,int* output_data,int length);
void decipher(int* input_data,int* output_data,int length);
bool correctdata(int* input_data,int data,int position);
};
Data::Data(int* data,int length)
{
int i;
Idata=new int[length];
for(i=0;i<length;i++)
{
Idata[i]=data[i];
}
// for(i=0;i<length;i++)
// {cout<<Idata[i]<<' ';}
}
void Data::encipher(int* data,int* Odata,int length)
{
int count=0;
int i=0;
if(length<=0)
cout<<"you must input the correct length."<<endl;
else
while(i<length)
{
for(int j=0;j<i;j++)
if(data[j]<data[i])
count++;
Odata[i]=count;
count=0;
i++;
}
}
bool Data::correctdata(int* input_data,int data,int position)
{
int i,j,count=0;
for(i=0;i<position;i++)
for(j=i+1;j<position+1;j++)
{if(input_data[i]==input_data[j])
return false;}
for(i=0;i<position;i++)
{if(input_data[i]<input_data[position])
count++;}
if(count==data)
return true;
else
return false;
}
void Data::decipher(int* data,int* Odata,int length)
{
int i=0;
// memset(Odata,-1,length);
int k=0;
for(k=0;k<length;k++)
Odata[k]=-1;
//if(i>=length)
// return;
step1:Odata[i]=0;
step2:Odata[i]=Odata[i]+1;
step3:if(Odata[i]<length)
{
if(correctdata(Odata,data[i],i))
{
i++;
if(i<length)
goto step2;
else
goto end;
}
else
goto step2;
}
else
{
Odata[i]=-1;
i--;
goto step2;
}
/*
step3:if(!correctdata(Odata,data[i],i))
{
//Odata[i]=Odata[i]+1;
if(Odata[i]>length)
{i--;goto step2;}
}
else
{
i++;
if(i>length)
goto end;
goto step2;
}*/
end: int j=0;
for(j=0;j<length;j++)
cout<<Odata[j]<<' ';
return;
}
int main(int argc, char* argv[])
{
int i;
int length;
int* data;
int* Idata;
int* Odata;
cout<<"please input the length of data:"<<endl;
cin>>length;
data=new int[length]; //save the type-in data before enciphered
Idata=new int[length]; //save the output data after deciphered
Odata=new int[length]; //save the output data after enciphered
cout<<"please input the data:"<<endl;
for(i=0;i<length;i++)
cin>>data[i];
Data D(data,length);
D.encipher(data,Odata,length);
for(i=0;i<length;i++)
cout<<Odata[i]<<' ';
cout<<endl;
//i=5;
//cout<<Odata[i]<<endl;
//int position=i;
//if(D.correctdata(data,Odata[i],position))
// cout<<"true"<<endl;
//else
// cout<<"false"<<endl;
D.decipher(Odata,Idata,length);
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -