您好!
我用的Microsoft?Visual?C++?6.0
本想幫妳改改,但是編譯報了很奇異的錯誤,
而且我大概看了壹下妳的代碼覺得太繁復了,func_jpegcode裏面for嵌套for嵌套while再嵌套do,看到這裏我決定重新幫妳寫壹個吧。
下面的代碼簡潔了許多,希望是lz想要的效果。
#include<iostream>
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<size*size;++k)
cout<<output[k]<<'?';
cout<<endl;
}
void?main()
{
int?i,j,input[size][size];
cout<<"Please?input?a?"<<size<<'*'<<size<<"?int?matrix?:?"<<endl;
for(i=0;i<size;++i)
for(j=0;j<size;++j)
cin>>input[i][j];
func_jpegcode(input);
}
運行結果:
按Z字形讀取了原矩陣~~
如果認為講解不夠清楚,請追問。如果滿意,請采納,謝謝!
祝:學習進步!