计算机技术论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

  • 欢迎访问 计算机技术论坛-电脑迷与初学者的家园!由于论坛管理严格,新注册会员可能遇到各种问题,无法解决的请发邮件 admin@jsjbbs.cn
查看: 4417|回复: 4

[已解决] 计算机C语言(VC)这是什么意思啊!

[复制链接]
发表于 2010-12-19 21:47:33 | 显示全部楼层 |阅读模式
#include   <stdio.h>
int   f[11][11]   ;
int   adjm[121][121];
long   fgf;
void   creatadjm(void);
void   e(int,int,int,int);
void   travel(int,int);
int   n,m;
int   main()
{
        int   i,j,k,l;
        printf( "Input   n: ");scanf( "%d ",&n);
        m=n*n;
        creatadjm();
        for(i=1;i <=m;i++)
        {
                for(j=1;j <=m;j++)   printf( "%2d ",adjm[i][j]);
                        printf( "\n ");
        }
        getchar();
        printf( "Input   i,j: ");
        scanf( "%d   %d ",&i,&j);
        l=(i-1)*n+j;
        while   ((i> 0)||(j> 0))
        {
                for(i=1;i <=n;i++)
                for(j=1;j <=n;j++)
                f[i][j]=0;
        k=0;
        travel(l,k);
printf( "%d\n ",fgf);fgf=0;
        for(i=1;i <=n;i++)
        {
                for(j=1;j <=n;j++)   printf( "%4d ",f[i][j]);
                        printf( "\n ");
        }
        getchar();
        printf( "Input   i,j: ");scanf( "%d   %d ",&i,&j);
        l=(i-1)*n+j;
        }
        return   0;
}
void   creatadjm()
{
        int   i,j;
        for(i=1;i <=n;i++)
                for(j=1;j <=n;j++)   
                        f[i][j]=0;
        for(i=1;i <=m;i++)
                for(j=1;j <=m;j++)   
                        adjm[i][j]=0;
for(i=1;i <=n;i++)
for(j=1;j <=n;j++)
if(f[i][j]==0)
{
                        f[i][j]=1;
                        if((i+2 <=n)&&(j+1 <=n))   e(i,j,i+2,j+1);
                        if((i+2 <n)&&(j-1> 1))   e(i,j,i+2,j-1);
                        if((i-2> 1)&&(j+1 <n))   e(i,j,i-2,j+1);
                        if((i-2> 1)&&(j-1> 1))   e(i,j,i-2,j-1);
                        if((j+2 <=n)&&(i+1 <=n))   e(i,j,i+1,j+2);
                        if((j+2 <n)&&(i-1> 1))   e(i,j,i-1,j+2);
                        if((j-2> 1)&&(i+1 <n))   e(i,j,i+1,j-2);
                        if((j-2> 1)&&(i-1> 1))   e(i,j,i-1,j-2);
}
        return;
}
void   travel(int   p,int   r)
{
        int   i,j,q;
        for(i=1;i <=n;i++)
                for(j=1;j <=n;j++)
                        if(f[i][j]> r)   f[i][j]=0;
        r=r+1;
        i=((p-1)/n)+1;
        j=((p-1)%n)+1;

        f[i][j]=r;
        fgf++;
//if(r==25)printf( "%d\n ",p);
/*
printf( "i=%d,j=%d,r=%d\n ",i,j,r);   getchar();
*/
        for(q=1;q <=m;q++)
        {
                i=((q-1)/n)+1;
                j=((q-1)%n)+1;
                if((adjm[p][q]==1)&&(f[i][j]==0))   travel(q,r);
        }
        return;
}
void   e(int   i1,int   j1,int   i2,int   j2)
{
        adjm[(i1-1)*n+j1][(i2-1)*n+j2]=1;
        adjm[(i2-1)*n+j2][(i1-1)*n+j1]=1;
        return;
}
  

发表于 2010-12-20 07:44:43 | 显示全部楼层
楼主说详细点啊,哪句不懂啊?
发表于 2010-12-20 10:27:57 | 显示全部楼层
不懂,等待高手
发表于 2010-12-20 13:29:30 | 显示全部楼层
C语言程序,不懂,帮你顶一下。
 楼主| 发表于 2011-4-7 12:33:30 | 显示全部楼层
呵呵   谢谢你帮我顶了啊
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

无图版|手机版|计算机技术论坛 JSJBBS.CN @ 2008-2024 ( 鲁ICP备17021708号 )

技术支持 : 北京康盛新创科技有限责任公司

快速回复 返回顶部 返回列表