| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 401 人关注过本帖
标题:求大神指导 为什么和视频演示的结果不一样
只看楼主 加入收藏
歪鼻子
Rank: 1
来 自:中国
等 级:新手上路
帖 子:18
专家分:2
注 册:2015-8-6
结帖率:100%
收藏
 问题点数:0 回复次数:1 
求大神指导 为什么和视频演示的结果不一样
#define _CRT_SECURE_NO_WARNINGS
int a[10][3] = { 0 };
#include<stdio.h>
#include<stdlib.h>
void show(int a[10][3]);
void hanno(int n, char A, char B, char C);
void Move(char X, char Y);




void main()
{
    int a[10][3] = { 0 };                   //存储
    int n;
    printf("请输入汉诺塔层数:");
    scanf("%d", &n);
    for (int i = 0; i < n; i++)          //控制
    {
        a[10 - 1 - i][0] = n - i;       // 布局
    }
    show(a);     //显示
    hanno(n, 'A', 'B', 'C');
    system("pause");


}

void show(int a[10][3])
{
    printf("%5c%5c%5c\n", 'A', 'B', 'C');
    printf("----------------------     \n");
    for (int i = 0; i < 10; i++)         //行
    {
        for (int j = 0; j < 3; j++)     //列
        {
            printf("%5d", a[i][j]);     //显示
        }
        printf("\n");
    }
}

void hanno(int n, char A, char B, char C)
{
    if (n<1)
    {
        return;
    }
    else if (n == 1)
    {
        printf("\n%c->%c", A, C);//n==1时直接A->C
        Move(A, C);
        show(a);
    }
    else
    {
        hanno(n - 1, A, C, B);
        printf("\n%c->%c", A, C);//n==1时直接A->C
        Move(A, C);
        show(a);
        hanno(n - 1, B, A, C);
    }

}

void Move(char X, char Y)     //'A'=65, 'B'=66, 'C'=67
{
    int m = X - 65;
    int n = Y - 65;
    int imove = -1;
    int jmove;
    int temp;
    for (int i = 0; i < 10; i++)
    {
        if (a[i][m] != 0)
        {
            imove = i;
            break;
        }
    }
    if (a[9][n] == 0)
        jmove = 9;
    else
    {
        jmove = 10;
        for (int i = 0; i < 10; i++)
        {
            if (a[i][n] != 0)
            {
                jmove = i;
                break;
            }
        }
        jmove -= 1;
    }
    temp = a[imove][m];
    a[imove][m] = a[jmove][n];
    a[jmove][n] = temp;
}
图片附件: 游客没有浏览图片的权限,请 登录注册




为什么数组的的值没有交换?
搜索更多相关主题的帖子: include 
2015-08-20 18:37
歪鼻子
Rank: 1
来 自:中国
等 级:新手上路
帖 子:18
专家分:2
注 册:2015-8-6
收藏
得分:0 
明白了全局变量被局部变量覆盖了。

谁抢了我的---"哈哈怪" !!!
2015-08-22 12:55
快速回复:求大神指导 为什么和视频演示的结果不一样
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.047328 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved