![]() |
#2
mmmmmmmmmmmm2012-11-30 11:34
|
只有本站会员才能查看附件,请 登录
各位高手:我运行下面这段代码老出问题,不知道错在哪里,求指点!

#include <iostream>
#include <fstream>
#include <ctime>
using namespace std;
int main()
{
long start, finish;
start=clock();
ifstream sfile("sdata.txt",ios::in);
const unsigned short row=9,col=26;
unsigned short r1,c1;
unsigned short s1[col][row];
unsigned short (*sp)[row]=s1;
for(r1=0;r1<row;r1++)
for(c1=0;c1<col;c1++)
sfile>>*(*(sp+c1)+r1);
sfile.close();
unsigned short res[10000];
unsigned short *rp=res;
unsigned short a,b,c,d,e,f,g,h,i,j,k,l,m,n; //o,p,q,r,s,t,u,v,w,x,y,z;
unsigned short r2,z1,cln=0,halfrow=row/2;
for(n=0;n<col-13;n++)
for(m=n+1;m<col-12;m++)
for(l=m+1;l<col-11;l++)
for(k=l+1;k<col-10;k++)
for(j=k+1;j<col-9;j++)
for(i=j+1;i<col-8;i++)
for(h=i+1;h<col-7;h++)
for(g=h+1;g<col-6;g++)
for(f=g+1;f<col-5;f++)
for(e=f+1;e<col-4;e++)
for(d=e+1;d<col-3;d++)
for(c=d+1;c<col-2;c++)
for(b=c+1;b<col-1;b++)
for(a=b+1;a<col;a++)
{
z1=0;
for(r2=1;r2<row;r2++)
if(*(*(sp+a)+r2)+*(*(sp+b)+r2)+*(*(sp+c)+r2)+*(*(sp+d)+r2)+*(*(sp+e)+r2)+*(*(sp+f)+r2)+*(*(sp+g)+r2)+*(*(sp+h)+r2)+*(*(sp+i)+r2)+*(*(sp+j)+r2)+*(*(sp+k)+r2)+*(*(sp+l)+r2)+*(*(sp+m)+r2)+*(*(sp+n)+r2)==0) z1++;
if(z1>=halfrow)
{
*(rp+cln)=*(*(sp+a));*(rp+cln+1)=*(*(sp+b));*(rp+cln+2)=*(*(sp+c));*(rp+cln+3)=*(*(sp+d));
*(rp+cln+4)=*(*(sp+e));*(rp+cln+5)=*(*(sp+f));*(rp+cln+6)=*(*(sp+g));*(rp+cln+7)=*(*(sp+h));
*(rp+cln+8)=*(*(sp+i));*(rp+cln+9)=*(*(sp+j));*(rp+cln+10)=*(*(sp+k));*(rp+cln+11)=*(*(sp+l));
*(rp+cln+12)=*(*(sp+m));*(rp+cln+13)=*(*(sp+n));
*(rp+cln+14)=z1;
cln+=15;
}
}
ofstream rfile("result.txt",ios::out);
unsigned short x1;
for(x1=0;x1<cln;x1++)
{
rfile<<*(rp+x1)<<'\t';
if(x1==14||(x1-14)/15==0) rfile<<endl;
}
double duration;
finish=clock();
duration=(double)(finish-start)/CLOCKS_PER_SEC;
rfile<<endl<<duration;
rfile.close();
return 0;
}
谢谢!数据源也一起附上。#include <fstream>
#include <ctime>
using namespace std;
int main()
{
long start, finish;
start=clock();
ifstream sfile("sdata.txt",ios::in);
const unsigned short row=9,col=26;
unsigned short r1,c1;
unsigned short s1[col][row];
unsigned short (*sp)[row]=s1;
for(r1=0;r1<row;r1++)
for(c1=0;c1<col;c1++)
sfile>>*(*(sp+c1)+r1);
sfile.close();
unsigned short res[10000];
unsigned short *rp=res;
unsigned short a,b,c,d,e,f,g,h,i,j,k,l,m,n; //o,p,q,r,s,t,u,v,w,x,y,z;
unsigned short r2,z1,cln=0,halfrow=row/2;
for(n=0;n<col-13;n++)
for(m=n+1;m<col-12;m++)
for(l=m+1;l<col-11;l++)
for(k=l+1;k<col-10;k++)
for(j=k+1;j<col-9;j++)
for(i=j+1;i<col-8;i++)
for(h=i+1;h<col-7;h++)
for(g=h+1;g<col-6;g++)
for(f=g+1;f<col-5;f++)
for(e=f+1;e<col-4;e++)
for(d=e+1;d<col-3;d++)
for(c=d+1;c<col-2;c++)
for(b=c+1;b<col-1;b++)
for(a=b+1;a<col;a++)
{
z1=0;
for(r2=1;r2<row;r2++)
if(*(*(sp+a)+r2)+*(*(sp+b)+r2)+*(*(sp+c)+r2)+*(*(sp+d)+r2)+*(*(sp+e)+r2)+*(*(sp+f)+r2)+*(*(sp+g)+r2)+*(*(sp+h)+r2)+*(*(sp+i)+r2)+*(*(sp+j)+r2)+*(*(sp+k)+r2)+*(*(sp+l)+r2)+*(*(sp+m)+r2)+*(*(sp+n)+r2)==0) z1++;
if(z1>=halfrow)
{
*(rp+cln)=*(*(sp+a));*(rp+cln+1)=*(*(sp+b));*(rp+cln+2)=*(*(sp+c));*(rp+cln+3)=*(*(sp+d));
*(rp+cln+4)=*(*(sp+e));*(rp+cln+5)=*(*(sp+f));*(rp+cln+6)=*(*(sp+g));*(rp+cln+7)=*(*(sp+h));
*(rp+cln+8)=*(*(sp+i));*(rp+cln+9)=*(*(sp+j));*(rp+cln+10)=*(*(sp+k));*(rp+cln+11)=*(*(sp+l));
*(rp+cln+12)=*(*(sp+m));*(rp+cln+13)=*(*(sp+n));
*(rp+cln+14)=z1;
cln+=15;
}
}
ofstream rfile("result.txt",ios::out);
unsigned short x1;
for(x1=0;x1<cln;x1++)
{
rfile<<*(rp+x1)<<'\t';
if(x1==14||(x1-14)/15==0) rfile<<endl;
}
double duration;
finish=clock();
duration=(double)(finish-start)/CLOCKS_PER_SEC;
rfile<<endl<<duration;
rfile.close();
return 0;
}