您的位置:首页 > 其它

画图形问题(静态关系和动态关系)

2014-08-01 22:31 106 查看
/*

倒三角与顺三角

*/

5

*********

*******

*****

***

*

***

*****

*******

*********

#include<cstdio>

int main(){

int i,j,n;

while(scanf("%d",&n)!=EOF)

{

n--;

for(j=-n; j<=n; j++)

{

for(i=-n; i<=n; i++)

{

if(i==j||i+j==0)

printf("*");

else if(i<j&&-i<j)

printf("*");

else if(i>j&&i<-j)

printf("*");

else printf(" ");

}

printf("\n");

}

}

return 0;

}

/*

倒填

形如:

5

25 24 23 22 21

20 19 18 17 16

15 14 13 12 11

10 09 08 07 06

05 04 03 02 01

*/

#include<cstdio>

int main()

{

int i,j,n,t;

while(scanf("%d",&n)!=EOF)

{

t=n*n;

for(j=0; j<n; j++)

{

for(i=0; i<n; i++)

{

printf("%02d ",t--);

// t--;

}

printf("\n");

}

}

return 0;

}

/* (回转填数)动态关系,先预判,后赋值

5

01 16 15 14 13

02 17 24 23 12

03 18 25 22 11

04 19 20 21 10

05 06 07 08 09

*/

#include<cstdio>

#include<cstring>

int a[1010][1010];

int main(){

int i,j,t,n;

while(scanf("%d",&n)!=EOF)

{

memset(a,0,sizeof(a));

t=1; //t代表走的步数

i=j=0;

while(t!=n*n)

{

while(a[i+1][j]==0&&i+1<n) {a[i++][j]=t++;}

while(a[i][j+1]==0&&j+1<n) {a[i][j++]=t++;}

while(a[i][j-1]==0&&j-1>=0) {a[i][j--]=t++;}

while(a[i-1][j]==0&&i-1>=0) {a[i--][j]=t++;} //t=25时,无法预判,也就无法赋值。

}

a[i][j]=n*n;

for(j=0; j<n; j++)

{

for(i=0; i<n; i++)

{

printf("%02d ",a[j][i]);

}

printf("\n");



}

}

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: