用C语言实现的轴对称变换

 1 #include<stdio.h>
 2 
 3 main()
 4 {
 5   int i,p,n,k,f,c,h,g,w;
 6   int a[17][17];
 7 
 8   for(i=0;i<=8;i++)
 9     {
10       for(p=0;p<=8;p++)
11     {
12       a[i][p]=i+1;
13       for(n=0;n<=7;n++)
14         {
15           for(k=0;k<=7-n;k++)
16         {
17           a[n][k]=0;
18         }
19         }
20     }
21 
22     }
23   for(p=9;p<=16;p++)
24     {
25       for(f=0;f<=8;f++)
26     a[p][f]=a[16-p][f];
27     }
28   for(c=0;c<=16;c++)
29 
30     {
31  
32       for(h=9;h<=16;h++)
33     {
34       a[c][h]=a[c][16-h];
35      
36     }
37     }
38   for(g=0;g<=16;g++)
39     {
40       for(w=0;w<=16;w++)
41     {
42       printf("%d ",a[g][w]);
43     }
44       printf("\n");
45  
46     }
47 }

 

运行结果如下:

 

 

当然此题也可以用C++实现,代码是

 1 #include<iostream>
 2 using namespace std;
 3 int main()
 4 {
 5  
 6  int a[17][17];
 7 for(int i=0;i<=8;i++)
 8 {
 9 for(int p=0;p<=8;p++)
10 {
11 a[i][p]=i+1;
12 for(int n=0;n<=7;n++)
13 {
14  for(int k=0;k<=7-n;k++)
15  {
16   a[n][k]=0;
17  }
18 }
19 }
20 
21 }
22 for(int p=9;p<=16;p++)
23 {
24   for(int f=0;f<=8;f++)
25      a[p][f]=a[16-p][f];
26 }
27 for(int c=0;c<=16;c++)
28 
29 {
30  
31     for(int h=9;h<=16;h++)
32     {
33      a[c][h]=a[c][16-h];
34      
35     }
36 }
37 for(int g=0;g<=16;g++)
38 {
39  for(int w=0;w<=16;w++)
40  {
41  cout<<a[g][w]<<" ";
42  }
43  cout<<endl;
44  
45 }
46 return 0;
47 }

 

posted @ 2013-09-13 19:22  叶卢庆  阅读(630)  评论(0编辑  收藏  举报