| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 453 人关注过本帖
标题:请教诸位!--关于从“子函数”回到主函数的问题
只看楼主 加入收藏
xiaozi2013
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:四川成都
等 级:蒙面侠
威 望:6
帖 子:830
专家分:4331
注 册:2013-12-13
结帖率:91.43%
收藏
 问题点数:0 回复次数:6 
请教诸位!--关于从“子函数”回到主函数的问题
在主函数调用一个子函数A后再从这个子函数返回到主函数(以就是传说中的返回上一级的应用)

然后再调用其他子函数B时实现的功能却是函数A

表示不能淡定了!

代码如下:【红色部分是我自己想的返回主函数】


#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int Main_interface();    //操作系统主界面
void Hanoi(int num,char a,char b,char c );    //汉诺塔功能实现函数
void HNT() ;   //汉诺塔操作的主界面
void  Main_monkey();    //猴子吃桃的主操作函数
int monkey(int h);   //猴子吃桃功能实现函数
int m = 0;   //汉诺塔移动的步数
int n;    //主界面菜单【function】选择项

void main()
{
    n = Main_interface();
   
    do{
    switch (n)
    {
    case 1:
        HNT();
        break;
    case 2:
        Main_monkey();
        break;
    case 3:

        break;
    case 0:
        exit (1);

    }
    }while (1);
}


int Main_interface()
{
    int a;
   
    printf ("\t\t******************欢迎使用“学海无涯”系统******************\n\n");

    printf ("【请选择function】\n");

    printf ("\t1.实战1(a:汉诺塔的移动)\n\t2.实战2(a:猴子吃桃问题)\n\t3.实战3(a:随机选取范围数\tb:简易计算器)\n\t0.退出系统\n");
    scanf ("%d",&a);

    do{
   
        if (a <=3&&a >=0)
            return a;

        else
        {
            printf ("请重新输入正确的选项!Thanks!\n");

            scanf ("%d",&a);
        }

    }while (1);

    system ("pause");
}



void HNT()
{
    int num,i = 0,b,c;
    do{
    do{
      
        printf ("请输入汉诺塔盘子的数目:(1~99)\n");

        i++;

        if (i != 1)
            printf ("请输入正确的数字!\n");

        scanf ("%d",&num);

        if (num <=99||num >=1)
            break;
    }while (1);

    printf ("*\t移动步数\t操作\n");
    Hanoi(num,'a','b','c');
    printf ("\n\n\n");

    printf ("请问您是否还要进行汉诺塔操作?是请按1,否请按0\n");
    scanf ("%d",&b);
    if (b == 0)
        break;
    }while (1);

    printf ("返回上级系统请按1,退出系统请按0 \n\n");
    scanf ("%d",&c);

    if (c == 1)
    {
        system ("cls");
        Main_interface();
    }

    else
        exit (1);
}

void Hanoi(int num,char a,char b,char c )
{
        if (num == 1)
            printf ("*\t%d\t\t%c-->%c\n",++m,a,c);

        else
        {
            Hanoi(num-1,a,c,b);

            printf ("*\t%d\t\t%c-->%c\n",++m,a,c);


            Hanoi(num-1,b,a,c);
        }
}

void  Main_monkey()
{
    int d,e;     //声明变量吃桃的天数
   
    char g;   //选择操作变量
   
    do{

    do{
        printf ("请输入吃桃的天数:(2~24)\n");

        scanf ("%d",&d);
    }while (d<=1||d>=25);
   
    e = monkey(d);

    printf ("桃子的总数为%d\n\n",e);

    printf ("继续实现猴子吃桃请按1,退回上一级请按2,退出系统请按0 \n\n");

    g = getche();
    fflush(stdin);

        if (g == 2)
        {
            system ("cls");
            
            Main_interface();
        }

        else if (g == 0)
            exit (1);

        else if (g == 1)
            break;

    }while (1);

}

int monkey(int h)
{
    int i;
   
    int f = 1;

    for (i = 1;i<h;i++)
    {
        f = (f + 1)*2;
    }

    return (f);
}
搜索更多相关主题的帖子: include 操作系统 传说 
2014-03-14 10:02
xiaozi2013
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:四川成都
等 级:蒙面侠
威 望:6
帖 子:830
专家分:4331
注 册:2013-12-13
收藏
得分:0 
调用函数错了!!!

知道错哪儿了!!

麻烦诸位了!!

--整天敲那些破代码能找着媳妇儿吗。。。---
2014-03-14 10:06
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
麻煩放點分~

授人以渔,不授人以鱼。
2014-03-14 10:40
梦落尘埃
Rank: 2
来 自:wust
等 级:论坛游民
帖 子:7
专家分:25
注 册:2014-2-18
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册

带着梦想到处游,无所谓
2014-03-14 11:16
fragileeye
Rank: 5Rank: 5
等 级:职业侠客
威 望:2
帖 子:107
专家分:387
注 册:2011-5-21
收藏
得分:0 
ls正解,fflush(stdin); then getche();
2014-03-14 11:46
xiaozi2013
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:四川成都
等 级:蒙面侠
威 望:6
帖 子:830
专家分:4331
注 册:2013-12-13
收藏
得分:0 
以下是引用梦落尘埃在2014-3-14 11:16:01的发言:



这些地方还没修改

--整天敲那些破代码能找着媳妇儿吗。。。---
2014-03-14 12:28
xiaozi2013
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:四川成都
等 级:蒙面侠
威 望:6
帖 子:830
专家分:4331
注 册:2013-12-13
收藏
得分:0 
以下是引用TonyDeng在2014-3-14 10:40:12的发言:

麻煩放點分~



额都只有丢丢咯!!!!!!!

省到点用

--整天敲那些破代码能找着媳妇儿吗。。。---
2014-03-14 12:29
快速回复:请教诸位!--关于从“子函数”回到主函数的问题
数据加载中...
 
   



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

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