帮忙调试并加个注解,该如何解决
帮忙调试并加个注解
#include<iostream>
#include<fstream>
#include<vector>
#include<algorithm>
#include<functional>
#include<iterator>
using namespace std;
typedef vector<int> VecInt;
VecInt Convokernel1(const VecInt&Matrix);
VecInt Convokernel2(const VecInt&Matrix);
int main()
{
VecInt data(10000);
ifstream infile("test.txt");
ofstream outfile("result.txt");
if(!infile)
{
cout<<"txt open failed"<<endl;
return 1;
}
if(!outfile)
{
cout<<"txt open failed"<<endl;
return 1;
}
for(int i=0;i<10000;i++)
{infile>>data[i];}
VecInt Result=ConvoKernel1(data);
outfile<<"after the fist convolution th datas are"<<endl;
for(int i=0;i<80;i++)
{
copy(&Result[i],&Result[i+125],ostream_iterator<int>(outfile," "));
outfile<<endl;
}
Result=ConvoKernel2(data);
outfile<<"after the second convolution the datas are"<<endl;
for (int i=0;i<100;i++)
{
copy(&Result[i],&Result[i+100],ostream_iterator<int>(outfile," "));
outfile<<endl;
}
outfile.close();
infile.close();
return 0;
}
VecInt ConvoKernel1(const VecInt& Matrix)//卷积运算1
{
VecInt Result(Matrix);
inta[]={0,-1,0,-1,5,-1,0,-1,0};
for(int i=1;i<124;i++)
for(int j=1;j<79;j++)
Result[i*j]=Matrix[(i-1)*(j-1)]*a[0]+Matrix[i*(j-1)]*a[1]+Matrix[i*(j+1)]*a[2]\
+Matrix[(i-1)*j]*a[3]+Matrix[i*j]*a[4]+Matrix[(i+1)*j]*a[5]\
+Matrix[(i-1)*(j+1)]*a[6]+Matrix[i*(j+1)]*a[7]+Matrix[(i+1)*(j+1)]*a[8];
return Result;
}
VecInt ConvoKernel2(const VecInt&Matrix)//卷积运算2
{
VecInt Result(Matrix);
int b[]={0,0,-1,0,0,0,-1,-2,-1,0,-1,-2,16,-2,-1,0,-1,-2,-1,0,0,0,-1,0,0};
for(int i=2;i<98;i++)
for(int i=2;j<98;j++)
Result[i*j]=Matrix[(i-2)*(j-2)]*b[0]+Matrix[(i-2)*(j-1)]*b[1]+Matrix[(i-2)*(j)]*b[2]+Matrix[(i-2)*(j+1)]*b[3]+Matrix[(i-2)*(j+2)]*b[4]\
+Matrix[(i-1)*(j-2)]*b[5]+Matrix[(i-1)*(j-1)]*b[6]+Matrix[(i-1)*(j)]*b[7]+Matrix[(i-1)*(j+1)]*b[8]+Matrix[(i-1)*(j+2)]*b[9]
+Matrix[(i)*(j-2)]*b[10]+Matrix[(i)*(j-1)]*b[11]+Matrix[(i)*(j)]*b[12]+Matrix[(i)*(j+1)]*b[13]+Matrix[(i-2)*(j+2)]*b[14]% U# u: M* v1 {3 d
+Matrix[(i+1)*(j-2)]*b[15]+Matrix[(i+1)*(j-1)]*b[16]+Matrix[(i)*(j)]*b[17]+Matrix[(i+1)*(j+1)]*b[18]+Matrix[(i+2)*(j+2)]*b[19]
+Matrix[(i+2)*(j-2)]*b[20]+Matrix[(i+2)*(j-1)]*b[21]+Matrix[(i+2)*(j)]*b[22]+Matrix[(i+2)*(j+1)]*b[23]+Matrix[(i+2)*(j+2)]*b[24];
return Result;
}
------解决方案--------------------
#include<iostream>
#include<fstream>
#include<vector>
#include<algorithm>
#include<functional>
#include<iterator>
using namespace std;
typedef vector<int> VecInt;
VecInt Convokernel1(const VecInt&Matrix);
VecInt Convokernel2(const VecInt&Matrix);
int main()
{
VecInt data(10000);
ifstream infile("test.txt");
ofstream outfile("result.txt");
if(!infile)
{
cout<<"txt open failed"<<endl;
return 1;
}
if(!outfile)
{
cout<<"txt open failed"<<endl;
return 1;
}
for(int i=0;i<10000;i++)
{infile>>data[i];}
VecInt Result=ConvoKernel1(data);
outfile<<"after the fist convolution th datas are"<<endl;
for(int i=0;i<80;i++)
{
copy(&Result[i],&Result[i+125],ostream_iterator<int>(outfile," "));
outfile<<endl;
}
Result=ConvoKernel2(data);
outfile<<"after the second convolution the datas are"<<endl;
for (int i=0;i<100;i++)
{
copy(&Result[i],&Result[i+100],ostream_iterator<int>(outfile," "));
outfile<<endl;
}
outfile.close();
infile.close();
return 0;
}
VecInt ConvoKernel1(const VecInt& Matrix)//卷积运算1
{
VecInt Result(Matrix);
inta[]={0,-1,0,-1,5,-1,0,-1,0};
for(int i=1;i<124;i++)
for(int j=1;j<79;j++)
Result[i*j]=Matrix[(i-1)*(j-1)]*a[0]+Matrix[i*(j-1)]*a[1]+Matrix[i*(j+1)]*a[2]\
+Matrix[(i-1)*j]*a[3]+Matrix[i*j]*a[4]+Matrix[(i+1)*j]*a[5]\
+Matrix[(i-1)*(j+1)]*a[6]+Matrix[i*(j+1)]*a[7]+Matrix[(i+1)*(j+1)]*a[8];
return Result;
}
VecInt ConvoKernel2(const VecInt&Matrix)//卷积运算2
{
VecInt Result(Matrix);
int b[]={0,0,-1,0,0,0,-1,-2,-1,0,-1,-2,16,-2,-1,0,-1,-2,-1,0,0,0,-1,0,0};
for(int i=2;i<98;i++)
for(int i=2;j<98;j++)
Result[i*j]=Matrix[(i-2)*(j-2)]*b[0]+Matrix[(i-2)*(j-1)]*b[1]+Matrix[(i-2)*(j)]*b[2]+Matrix[(i-2)*(j+1)]*b[3]+Matrix[(i-2)*(j+2)]*b[4]\
+Matrix[(i-1)*(j-2)]*b[5]+Matrix[(i-1)*(j-1)]*b[6]+Matrix[(i-1)*(j)]*b[7]+Matrix[(i-1)*(j+1)]*b[8]+Matrix[(i-1)*(j+2)]*b[9]
+Matrix[(i)*(j-2)]*b[10]+Matrix[(i)*(j-1)]*b[11]+Matrix[(i)*(j)]*b[12]+Matrix[(i)*(j+1)]*b[13]+Matrix[(i-2)*(j+2)]*b[14]% U# u: M* v1 {3 d
+Matrix[(i+1)*(j-2)]*b[15]+Matrix[(i+1)*(j-1)]*b[16]+Matrix[(i)*(j)]*b[17]+Matrix[(i+1)*(j+1)]*b[18]+Matrix[(i+2)*(j+2)]*b[19]
+Matrix[(i+2)*(j-2)]*b[20]+Matrix[(i+2)*(j-1)]*b[21]+Matrix[(i+2)*(j)]*b[22]+Matrix[(i+2)*(j+1)]*b[23]+Matrix[(i+2)*(j+2)]*b[24];
return Result;
}
------解决方案--------------------
- C/C++ code
#include<iostream> #include<fstream> #include<vector> #include<algorithm> #include<functional> #include<iterator> using namespace std; typedef vector<int> VecInt; VecInt ConvoKernel1(const VecInt&Matrix); //此处注意K的大小写 VecInt ConvoKernel2(const VecInt&Matrix); int main() { VecInt data(10000); ifstream infile("test.txt"); ofstream outfile("result.txt"); if(!infile) { cout<<"txt open failed"<<endl; return 1; } if(!outfile) { cout<<"txt open failed"<<endl; return 1; } for(int i=0;i<10000;i++) { infile>>data[i]; } VecInt Result = ConvoKernel1(data); outfile<<"after the fist convolution th datas are"<<endl; for(int i=0;i<80;i++) { copy(&Result[i],&Result[i+125],ostream_iterator<int>(outfile," ")); outfile<<endl; } Result = ConvoKernel2(data); outfile<<"after the second convolution the datas are"<<endl; for (int i=0;i<100;i++) { copy(&Result[i],&Result[i+100],ostream_iterator<int>(outfile," ")); outfile<<endl; } outfile.close(); infile.close(); return 0; } VecInt ConvoKernel1(const VecInt& Matrix)//卷积运算1 { VecInt Result(Matrix); int a[]={0,-1,0,-1,5,-1,0,-1,0}; //ina 和 a连在一起了 for(int i=1;i<124;i++) for(int j=1;j<79;j++) Result[i*j]=Matrix[(i-1)*(j-1)]*a[0]+Matrix[i*(j-1)]*a[1]+Matrix[i*(j+1)]*a[2]\ +Matrix[(i-1)*j]*a[3]+Matrix[i*j]*a[4]+Matrix[(i+1)*j]*a[5]\ +Matrix[(i-1)*(j+1)]*a[6]+Matrix[i*(j+1)]*a[7]+Matrix[(i+1)*(j+1)]*a[8]; return Result; } VecInt ConvoKernel2(const VecInt&Matrix)//卷积运算2 { VecInt Result(Matrix); int b[]={0,0,-1,0,0,0,-1,-2,-1,0,-1,-2,16,-2,-1,0,-1,-2,-1,0,0,0,-1,0,0}; for(int i=2;i<98;i++) for(int j=2;j<98;j++) //int i= 2 i改j { // 这片代码太乱 清楚啊~ Result[i*j]=Matrix[(i-2)*(j-2)]*b[0]+Matrix[(i-2)*(j-1)]*b[1]+Matrix[(i-2)*(j)]*b[2]+Matrix[(i-2)*(j+1)]*b[3]+Matrix[(i-2)*(j+2)]*b[4] \ +Matrix[(i-1)*(j-2)]*b[5]+Matrix[(i-1)*(j-1)]*b[6]+Matrix[(i-1)*(j)]*b[7]+Matrix[(i-1)*(j+1)]*b[8]+Matrix[(i-1)*(j+2)]*b[9] \ +Matrix[(i)*(j-2)]*b[10]+Matrix[(i)*(j-1)]*b[11]+Matrix[(i)*(j)]*b[12]+Matrix[(i)*(j+1)]*b[13]+Matrix[(i-2)*(j+2)]*b[14]; M* v1 {3 \ +Matrix[(i+1)*(j-2)]*b[15]+Matrix[(i+1)*(j-1)]*b[16]+Matrix[(i)*(j)]*b[17]+Matrix[(i+1)*(j+1)]*b[18]+Matrix[(i+2)*(j+2)]*b[19] \ +Matrix[(i+2)*(j-2)]*b[20]+Matrix[(i+2)*(j-1)]*b[21]+Matrix[(i+2)*(j)]*b[22]+Matrix[(i+2)*(j+1)]*b[23]+Matrix[(i+2)*(j+2)]*b[24]; } return Result; }