回复:(野比)[全民编程]76道高难度C++练习题.含NOI竞...
程序代码:
<br>/*<br>3. 打印一个 N*N 的方阵,N为每边 <br>字符的个数(3<N<20), 要求最 <br>外一层为"T", 第二层为"J", 从第三层 <br>起每层依次打印数字 1,2,3,... <br>*/<br>#include <iostream.h><br>#define MAX 22</P>
<P>int main()<br>{<br> int i=0,j=0,m=1,n=3;<br> char charr[MAX][MAX];<br> char ch1='T';<br> char ch2='J';<br> //char tmp[2];</P>
<P> for(i=0;i<MAX-1;i++)<br> for(j=0;j<MAX-1;j++)<br> charr[i][j]='a';</P>
<P> cout<<"输入N的值:";<br> cin>>n;<br> int a=0,b=n-1,c=n-1,d=0;<br> bool bo=false;</P>
<P> while(m<=(n-4)/2+1)<br> {<br> for(i=0;i<n;i++)<br> { <br> if(a==0)<br> { <br> if(charr[a][i]=='a')<br> charr[a][i]=ch1;<br> continue;<br> }<br> if(a==1)<br> {<br> if(charr[a][i]=='a')<br> charr[a][i]=ch2;<br> continue;<br> }<br> if(charr[a][i]=='a')<br> charr[a][i]=(char)m+(char)48;<br> }<br> <br> for(i=0;i<n;i++)<br> {<br> if(b==n-1)<br> {<br> if(charr[i][b]=='a')<br> charr[i][b]=ch1;<br> continue;<br> }<br> if(b==n-2)<br> {<br> if(charr[i][b]=='a')<br> charr[i][b]=ch2;<br> continue;<br> }<br> if(charr[i][b]=='a')<br> charr[i][b]=(char)m+(char)48; <br> }<br> <br> for(i=n-1;i>=0;i--)<br> {<br> if(c==n-1)<br> {<br> if(charr[c][i]=='a')<br> charr[c][i]=ch1;<br> continue;<br> }<br> if(c==n-2)<br> {<br> if(charr[c][i]=='a')<br> charr[c][i]=ch2;<br> continue;<br> }<br> if(charr[c][i]=='a')<br> charr[c][i]=(char)m+(char)48; <br> }<br> <br> for(i=n-1;i>=0;i--)<br> {<br> if(d==0)<br> {<br> if(charr[i][d]=='a')<br> charr[i][d]=ch1;<br> continue;<br> }<br> if(d==1)<br> {<br> if(charr[i][d]=='a')<br> charr[i][d]=ch2;<br> continue;<br> }<br> if(charr[i][d]=='a')<br> charr[i][d]=(char)m+(char)48; <br> bo=true;<br> }</P>
<P> a++;d++;c--;b--;<br> if(bo==true)<br> m++;<br> }</P>
<P> for(i=0;i<n;i++)<br> {<br> for(j=0;j<n;j++)<br> cout<<charr[i][j]<<' ';<br> cout<<endl;<br> }<br> return 0;<br>}<br>
[此贴子已经被作者于2007-6-27 21:38:23编辑过]

我的阿根廷队何时涅磐啊,唉......






2007-6-26 13:36


