标题:菜菜鸟求助 返回值问题... 祝大家节日愉快
取消只看楼主
剁吧剁吧
Rank: 1
等 级:新手上路
帖 子:51
专家分:0
注 册:2008-5-2
 问题点数:0 回复次数:13 
菜菜鸟求助 返回值问题... 祝大家节日愉快
函数如下
/*********保存退出模块*********/

int Exit(void)
{
    printf("\t你确定保存工程师资料并退出(y/n)?");
        scanf("%c",&yesno);
            fflush(stdin);
            switch(yesno)     
            {   
                case 'y':
                case 'Y':
                    printf("\t保存成功!请按任意键退出!\n ");
                    return 0;
                case 'n':
                case 'N':
                    printf("\t返回菜单\n");
                    return 1;
            }
}


不知道为什么 不管按Y还是N 他返回的都是0 ..求助各位老鸟 祝大家节日愉快咯!
搜索更多相关主题的帖子: 菜菜 返回值 节日 case printf 
2008-05-02 13:59
剁吧剁吧
Rank: 1
等 级:新手上路
帖 子:51
专家分:0
注 册:2008-5-2
得分:0 
来人啊...
2008-05-02 14:14
剁吧剁吧
Rank: 1
等 级:新手上路
帖 子:51
专家分:0
注 册:2008-5-2
得分:0 
这是个函数模块 我调用他呢 前面我定义了全局变量

   我用的VC++6.0
   char yesno;
    int yes;

[[it] 本帖最后由 剁吧剁吧 于 2008-5-2 14:29 编辑 [/it]]
2008-05-02 14:26
剁吧剁吧
Rank: 1
等 级:新手上路
帖 子:51
专家分:0
注 册:2008-5-2
得分:0 
啊 我怎么在我的编译器上运行 VC++6.0 不管我是按Y 还是N 他都返回是0
   我无解了我
2008-05-02 14:29
剁吧剁吧
Rank: 1
等 级:新手上路
帖 子:51
专家分:0
注 册:2008-5-2
得分:0 
我把完整的帖出来 版主麻烦你帮我看看 是不是 我用返回值的时候出问题了

case 0:
    Exit();
    printf("\yes的返回值是:%d\n",yes);
       if (yes==0)
       return;

/*********保存退出模块*********/

int Exit(void)
{
    printf("\t你确定保存工程师资料并退出(y/n)?");
        scanf("%c",&yesno);
            fflush(stdin);
            switch(yesno)     
            {   
                case 'y':
                case 'Y':
                    printf("\t保存成功!请按任意键退出!\n ");
                    return 0;
                case 'n':
                case 'N':
                    printf("\t返回菜单\n");
                    return 1;
            }
}
2008-05-02 14:36
剁吧剁吧
Rank: 1
等 级:新手上路
帖 子:51
专家分:0
注 册:2008-5-2
得分:0 
[bo]以下是引用 [un]广陵绝唱[/un] 在 2008-5-2 14:37 的发言:[/bo]

不用 break;    ?

    加上它试试?如果说得不对,不要笑话。

  

 我没用 break...
2008-05-02 14:38
剁吧剁吧
Rank: 1
等 级:新手上路
帖 子:51
专家分:0
注 册:2008-5-2
得分:0 
  好得 我全部贴出来...
#include <stdio.h>
#include <stdlib.h>
void Menu(void);
int number(int EngineerNo);
int Exit(void);

int EngineerNo,EngineerSex,EngineerBirth,EngineerEducation,EngineerWorkYears,yes;

char EngineerName,EngineerHometown,EngineerAddress,EngineerPhone,yesno;

float EngineerBaseSalary;

void main(void)
{
while(1)
    {
    int menu=0;

    printf("\t-----------------------------------------------------\n");
    printf("\t|               软件测试工程师管理系统              |\n");
    printf("\t-----------------------------------------------------\n");
    printf("\t1.输入软件测试工程师资料\n");
    printf("\t2.删除指定测试工程师资料\n");
    printf("\t3.查询软件测试工程师资料\n");
    printf("\t4.修改软件测试工程师资料\n");
    printf("\t5.计算测试工程师的月薪水\n");
    printf("\t6.保存新添加大工程师资料\n");
    printf("\t7.对测试工程师信排序(1编号升序,2姓名升序, 3工龄升序)\n");
    printf("\t8.输出所有测试工程师信息\n");
    printf("\t9.清空所有测试工程师数据\n");
    printf("\t10.打印软件测试工程师 数据报表\n");
    printf("\t11.从文件重新导入测试工程师数据\n");
    printf("\t0.结束(编辑工程师信息后提示保存)\n");
    printf("\n\n");
    
    
    printf("\t请输入你的选择:",menu);
    scanf("%d",&menu);
    fflush(stdin);
    {
        switch(menu)
        {
            case 1:
                Menu();
                break;

            case 2:
                printf("\t删除指定测试工程师资料*****功能完善中!*****\n");
                break;

            case 3:
                printf("");
                break;

            case 4:
                printf("\t修改软件测试工程师资料*****功能完善中!*****\n");
                break;
 
            case 5:
                printf("");
                break;
   
            case 6:
                printf("\t保存新添加大工程师资料*****功能完善中!*****\n");
                break;

            case 7:
                printf("\t对测试工程师信排序(1 编号升序,2 姓名升序, 3 工龄升序)*****功能完善中!*****\n");
                break;

            case 8:
                printf("\t输出所有测试工程师信息*****功能完善中!*****\n");
                break;

            case 9:
                printf("\t清空所有测试工程师数据\n");
                break;

            case 10:
                printf("\t打印软件测试工程师 数据报表*****功能完善中!*****\n");
                break;
  
            case 11:
                printf("\t从文件重新导入测试工程师数据*****功能完善中!*****\n");
                break;
  
            case 0:
                Exit();
                printf("\t11111111111111111111-======%d\n",yes);
                if (yes==0)
                    return;
                break;
   
            default:
                printf("\t您输入错误,系统进入主菜单\n");
                break;    
 

                

                
                    
        }

    }
    
    }
}



/*********工程师输入信息*********/

void Menu(void)
{
    printf("\t确定输入工程师资料?(y/n)");
        while(1)
                {
                scanf("%c",&yesno);
                    fflush(stdin);
                    switch(yesno)    
                    {
                        case 'y':
                            printf("\t请输入工程师编号(1-2000):");
                                number(EngineerNo);

                            printf("\t请输入工程师姓名:");
                                scanf("%c", &EngineerName);
                                fflush(stdin);

                            printf("\t请输入工程师性别:");
                                scanf("%d",&EngineerSex);
                                fflush(stdin);
                            
                            printf("\t请输入工程师生日:");
                                scanf("%d",&EngineerBirth);
                                fflush(stdin);

                            printf("\t请输入工程师籍贯:");
                                scanf("%c",&EngineerHometown);
                                fflush(stdin);

                            printf("\t请输入工程师学历:");
                                scanf("%d",&EngineerEducation);
                                fflush(stdin);

                            printf("\t请输入工程师地址:");
                                scanf("%c",&EngineerAddress);
                                fflush(stdin);

                            printf("\t请输入工程师电话:");
                                scanf("%c",&EngineerPhone);
                                fflush(stdin);

                            printf("\t请输入工程师工龄:");
                                scanf("%d",&EngineerWorkYears);
                                fflush(stdin);

                            printf("\t请输入工程师基本薪水:");
                                scanf("%f",&EngineerBaseSalary);
                                fflush(stdin);
                            
                            break;

                        case 'n':
                            printf("\t返回主菜单\n\n");
                            break;

                        default:
                            printf("\t你输入错误请重新输入(y/n):");
                    }
                    break;
                }
}


/*************判断编号是否输入正确*********/

int number(int EngineerNo)
{
    while(1)
    {
    scanf("%d",&EngineerNo);
    fflush(stdin);
    {
        if ( EngineerNo<=2000 &&EngineerNo>0 )
            return EngineerNo;
        else
            printf("\t您输入错误请重新输入编号: ");
    }
    }
}


/*************判断性别是否输入正确**********/

int gender(int sex)
{
    while(1)
    {    
    switch(sex)
    {
        case 0:
            break;
        case 1:
            break;      
        default:
            printf("\t您输入错误,请重新输入性别: ");
            continue;
    }
    break;
    }
}


/*********保存退出模块*********/

int Exit(void)
{
    printf("\t你确定保存工程师资料并退出(y/n)?");
        scanf("%c",&yesno);
            fflush(stdin);
            switch(yesno)     
            {   
                case 'y':
                case 'Y':
                    printf("\t保存成功!请按任意键退出!\n ");
                    return 0;
                case 'n':
                case 'N':
                    printf("\t返回菜单\n");
                    return 1;
            }
}
2008-05-02 14:43
剁吧剁吧
Rank: 1
等 级:新手上路
帖 子:51
专家分:0
注 册:2008-5-2
得分:0 
我现在就是怎么跳出循环和怎么结束循环没弄明白..
  谁能给我讲解下 刚刚运行了下 发现问题真的一大堆
2008-05-02 16:34
剁吧剁吧
Rank: 1
等 级:新手上路
帖 子:51
专家分:0
注 册:2008-5-2
得分:0 
[bo]以下是引用 [un]yd4433[/un] 在 2008-5-2 21:30 的发言:[/bo]

指出点错误给你看下  别的自己找找看
int gender(int sex)
{
    while(1)
    {   
    switch(sex)
    {
        case 0:
            break;
        case 1:
            break;      
        defaul ...



弄个最简单的吧 怎么
样让我我上面退出模块  有返回值 要么是1 要么是0
2008-05-02 21:45
剁吧剁吧
Rank: 1
等 级:新手上路
帖 子:51
专家分:0
注 册:2008-5-2
得分:0 
我的意思是想
主函数
{
    被调用函数;   
    返回值为1 就退出主函数 程序结束
    返回值为0 进入主函数 或者进入循环要求重新输入
}

被调用函数
{
    按 Y  返回1
    按 N  返回0
}
2008-05-02 21:51



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-212005-1-1.html




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

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