您好!
我用的Microsoft Visual C++ 6.0
本想帮你改改,但是编译报了很奇异的错误,
而且我大概看了一下你的代码觉得太繁复了,func_jpegcode里面for嵌套for嵌套while再嵌套do,看到这里我决定重新帮你写一个吧。
下面的代码简洁了许多,希望是lz想要的效果。
#include
using namespace std;
#define size 3
void func_jpegcode(int a[size][size])
{
int i,j,k,way;
int output[size*size];
i=0;j=0;k=0;way=1;
do
{
output[k]=a[i][j];
++k;
if(i==size-1 && way==-1)
{++j;way=-way;}
else if(j==size-1 && way==1)
{++i;way=-way;}
else if(i==0 && way==1)
{++j;way=-way;}
else if(j==0 && way==-1)
{++i;way=-way;}
else
{i-=way;j+=way;}
}while(i+j<2*size-1);
for(k=0;k cout<
哈哈,我找到了 int main()上一行少了 }
代码入下:
#include
using namespace std;
#define size 3
void func_jpegcode(int a[size][size])
{
int i,j,k=1;
int output[size*size]={0};
output[0]=a[0][0];
for(i=0;i
for(j=1;j
while(j%2!=0 && (i==0))
{
do{
output[k]=a[i][j];
i++;j--;k++;}
while(j!=0);
if(j==0)
{
if(i!=(size-1))
{
output[k]=a[i][j];i++;k++;}
/*else{output[k]=a[i][j];j++;k++;}*/
}
}
while(i%2==0 && j==0 )
{
do{output[k]=a[i][j];
i--;
j++;
k++;
}while(i!=0);
if(i==0)
{
if(j!=(size-1))
{
output[k]=a[i][j];
j++;
k++;
}
else
{
output[k]=a[i][j];
i++;
k++;
}//j++;
}
}
while( (i%2!=0 && j==(size-1)))
{
do{
output[k]=a[i][j];
j--;i++;k++;
}while(i!=(size-1));
if(i==(size-1))
{
output[k]=a[i][j];
j++;
k++;
}//j++;
}
while(j%2==0 && i==(size-1))
{
do{output[k]=a[i][j];
i--;
j++;
k++;
}
while(j!=(size-1));
if(j==(size-1))
{
output[k]=a[i][j];
i++;
k++;
}
}
for(k=0;k
cout<<" "<