听着夜曲逛威尼斯 2015-09-22 05:39 采纳率: 100%
浏览 1590
已采纳

(C++)小白来提问,程序出错。

#include
using namespace std;

double capital = 0.0;

double cal(int num, double quantity)
{
switch (num)
{
case 0:
return quantity*1.50;
case 1:
return quantity*1.70;
case 2:
return quantity*4.60;
case 3:
return quantity*0.90;
case 4:
return quantity*2.50;
case 5:
return quantity*3.70;
case 6:
return quantity*7.60;
case 7:
return quantity*3.90;
}
}

int main()
{
cout << "提示:本店提供8种水果,如下(左边为水果编号及名称,右边为其单价)" << endl;
cout << "0西瓜 1.50,1木瓜 1.70,2哈密瓜 4.60,3苹果 0.9\n" << "4梨 2.50,5柚子 3.70,6猕猴桃 7.60,7山楂 3.90" << endl;
int num_choice = 0;
while (1)
{
int Y_N;
cout << "请输入你你要购买的种类数量:";
cin >> num_choice;

    if (num_choice == 0)
    {
        cout << "您确定只是看看吗?要不买点吧?继续请按1,退出请按0" << endl;
        cin >> Y_N;
        if (Y_N == 0)
        {
            cout << "退出成功!" << endl;
            break;
        }
        else if (Y_N == 1)
        {
        }
        else
            cout << "不要捣乱,请按规定输入哦,亲" << endl;
    }
    else
    {
        cout << "种类编号分别为:";
        int *choice = new int[num_choice];
        double *quantity_choice = new double[num_choice];
        for (int i = 0; i < num_choice; i++)
            cin >> choice[i];
        cout << "请输入对应购买种类的重量:";
        for (int i = 0; i < num_choice; i++)
            cin >> quantity_choice[i];

        for (int j = 0; j < num_choice; j++)
        {
            capital += cal(choice[j], quantity_choice[j]);
        }

        cout << "继续购物吗?继续请按1,否则请按0,开始结算" << endl;
        cin >> Y_N;
        if (Y_N == 0)
        {
            cout << "开始结算,请付款:" << capital << "元" << endl;
            break;
        }
        else if (Y_N == 1)
        {
        }
        else
            cout << "猴子你又调皮了,按规定输入哦" << endl;
    }
}
delete[] choice;
choice = NULL;
delete[] quantity_choice;
quantity_choice = NULL;
system("pause");
return 0;

}

以上是程序,请无视掉小白的system("pause")
以下是错误提示
error C2065: “choice”: 未声明的标识符
error C2541: “delete”: 不能删除不是指针的对象
error C2065: “choice”: 未声明的标识符
error C2065: “quantity_choice”: 未声明的标识符
error C2541: “delete”: 不能删除不是指针的对象
error C2065: “quantity_choice”: 未声明的标识符

应该是因为自己不熟悉int *XXXXX=new int[XXX]的用法,哪位大咖来给讲一下,谢谢了。

  • 写回答

7条回答

  • lm_whales 2015-09-22 07:17
    关注

    choice
    quantity_choice
    的作用域是语句组的大括号内,现在不在此范围,编译器不知道这个名字,所以错误
    warning C4715: “cal”: 不是所有的控件路径都返回值

    你要加上一个 defult :分支,并返回一个值,
    或者在函数最后返回一个值

    这样才能保证 函数每个路径,有个正确的返回值,
    不然必然有一条路径,返回一个不确定的值

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(6条)

报告相同问题?

悬赏问题

  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
  • ¥30 python代码,帮调试
  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元