鱼C论坛

 找回密码
 立即注册
查看: 908|回复: 8

[已解决]函数入口处停止了

[复制链接]
发表于 2020-3-28 11:26:36 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
运行没有问题,就是在主函数的Selection函数入口处停止(调试时停在那)

int  *Selection(int sum ,int *pnum)
{       
        int sel=0;
        while (sum>0|sel!=-1);
          {       
          VendingMachine();
          cout<<"输入按钮数字即可选择对应的饮料(输入 -1 结束)"<<endl;
          cin>>sel;
        switch(sel)
        {
    case 1 :  
                if(sum-1>0)
                 { sum-=1;  pnum[0]++; }
                else
                { cout<<"余额为"<<sum<<endl; return pnum;}break;
        case 2:
                 if((sum-1)>0)
                 { sum-=1;  pnum[0]++;  }
                 else
                 { cout<<"余额为"<<sum<<endl; return pnum;}break;
        case 3:
                 if((sum-1)>0)
                 { sum-=1;  pnum[0]++;   }
                 else
                 { cout<<"余额为"<<sum<<endl; return  pnum ;}break;
        case 4:
                 if((sum-2)>0)
                 { sum-=1;  pnum[1]++;   }
                 else
                 { cout<<"余额为"<<sum<<endl; return pnum;}break;
        case 5:
            if((sum-2)>0)
                 { sum-=1;  pnum[2]++; }
                 else
               { cout<<"余额为"<<sum<<endl; return pnum;}         break;
        case 6:
              if((sum-3)>0)
                { sum-=1;  pnum[3]++;   }
                 else
                 { cout<<"余额为"<<sum<<endl; return pnum;}break;
        case 7:
                if((sum-3)>0)
                 { sum-=1;  pnum[4]++;  }
                 else
                 { cout<<"余额为"<<sum<<endl; return pnum;}break;
        case 8:
                if((sum-3)>0)
            { sum-=1;  pnum[5]++;   }
            else
            { cout<<"余额为"<<sum<<endl; return pnum;}break;
        case 9:
                if((sum-4)>0)
                 { sum-=1;  pnum[6]++;  }
                else
                 { cout<<"余额为"<<sum<<endl; return pnum;}break;
        case 10: if((sum-4)>0)
                { sum-=1;  pnum[7]++;   }
                 else
                { cout<<"余额为"<<sum<<endl; return pnum;}break;
        default:break;
            }
        }
        return pnum;          
}

int main()
{
        int  balance , money=0,  sum=0 ;
        int  num[8]={0,0,0,0,0,0,0,0} , *p;
        cout<<"请投入纸币(接受 1元 2元 5元 10元,超过则直接退还)"<<endl;
        while( money!=-1)
        {       
            cin>>money;
             if(money==1|money==2|money==5|money==10)
                      sum+=money;         
        }
        cout<<"您投入的纸币总额为"<<sum<<endl;
        p=Selection(sum,num);
       
        return 0;       
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-3-28 21:42:08 From FishC Mobile | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-3-29 16:48:51 From FishC Mobile | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-30 00:20:23 | 显示全部楼层
首先把代码发完整,然后重新描述一下你的问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-30 09:39:54 | 显示全部楼层
#include <iostream>
using  namespace std;
void VendingMachine()
{
                cout<<"-------------------------------------------------------------------"<<endl;
                cout<<"     1               2                 3              4               5    "<<endl;
                cout<<"Table-water "<<" Table-water "<<" Table-water "<<" Coca-cola "<<"    Milk  "<<endl;
                cout<<"    1元    "<<"      1元    "<<"       1元     "<<"    2元   "<<"    2元 "<<endl;
                cout<<endl;
                cout<<"    6                7                 8              9               10   "<<endl;
                cout<<"   Beer   "<<"  Orange-Juice "<<"    Sprite   "<<" Oolong-Tea "<<" Green-Tea "<<endl;
                cout<<"    3元    "<<"     3元     "<<"       3元     "<<"    4元    "<<"    4元   "<<endl;
                cout<<endl;
}
int  *Selection(int sum ,int *pnum)
{       
        int sel=0;
        while (sum>0|sel!=-1);
          {       
          VendingMachine();
          cout<<"输入按钮数字即可选择对应的饮料(输入 -1 结束)"<<endl;
          cin>>sel;
        switch(sel)
        {
    case 1 :  
                if(sum-1>0)
                 { sum-=1;  pnum[0]++; }
                else
                { cout<<"余额为"<<sum<<endl; return pnum;}break;
        case 2:
                 if((sum-1)>0)
                 { sum-=1;  pnum[0]++;  }
                 else
                 { cout<<"余额为"<<sum<<endl; return pnum;}break;
        case 3:
                 if((sum-1)>0)
                 { sum-=1;  pnum[0]++;   }
                 else
                 { cout<<"余额为"<<sum<<endl; return  pnum ;}break;
        case 4:
                 if((sum-2)>0)
                 { sum-=1;  pnum[1]++;   }
                 else
                 { cout<<"余额为"<<sum<<endl; return pnum;}break;
        case 5:
            if((sum-2)>0)
                 { sum-=1;  pnum[2]++; }
                 else
               { cout<<"余额为"<<sum<<endl; return pnum;}         break;
        case 6:
              if((sum-3)>0)
                { sum-=1;  pnum[3]++;   }
                 else
                 { cout<<"余额为"<<sum<<endl; return pnum;}break;
        case 7:
                if((sum-3)>0)
                 { sum-=1;  pnum[4]++;  }
                 else
                 { cout<<"余额为"<<sum<<endl; return pnum;}break;
        case 8:
                if((sum-3)>0)
            { sum-=1;  pnum[5]++;   }
            else
            { cout<<"余额为"<<sum<<endl; return pnum;}break;
        case 9:
                if((sum-4)>0)
                 { sum-=1;  pnum[6]++;  }
                else
                 { cout<<"余额为"<<sum<<endl; return pnum;}break;
        case 10: if((sum-4)>0)
                { sum-=1;  pnum[7]++;   }
                 else
                { cout<<"余额为"<<sum<<endl; return pnum;}break;
        default:break;
            }
        }
        return pnum;          
}
int main()
{
        int  balance , money=0,  sum=0 ;
        int  num[8]={0,0,0,0,0,0,0,0};
        int *p;
        cout<<"请投入纸币(接受 1元 2元 5元 10元,超过则直接退还)"<<endl;
        while( money!=-1)
        {       
            cin>>money;
             if(money==1|money==2|money==5|money==10)
                      sum+=money;         
        }
        cout<<"您投入的纸币总额为"<<sum<<endl;
        p=Selection(sum,num);
       
        return 0;       
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-30 09:43:25 | 显示全部楼层
主函数在输入的时候当输入负一时跳出循环,然后就停下来了,不能进入到Selection里接受第二次输入,调试发现是在p=Selection(sum,num)上一条语句停下来,就执行不了了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-30 09:44:13 | 显示全部楼层
人造人 发表于 2020-3-30 00:20
首先把代码发完整,然后重新描述一下你的问题

好了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-30 09:44:44 | 显示全部楼层
人造人 发表于 2020-3-30 00:20
首先把代码发完整,然后重新描述一下你的问题

好了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-30 14:25:29 | 显示全部楼层    本楼为最佳答案   

1.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-15 17:40

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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