#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]的用法,哪位大咖來給講一下,謝謝了。
choice
quantity_choice
的作用域是語句組的大括號內,現在不在此范圍,編譯器不知道這個名字,所以錯誤
warning C4715: “cal”: 不是所有的控件路徑都返回值
你要加上一個 defult :分支,並返回一個值,
或者在函數最後返回一個值
這樣才能保證 函數每個路徑,有個正確的返回值,
不然必然有一條路徑,返回一個不確定的值