如何修改double GetWeight(ALGraph G, int nStart, int nEnd, char cKind) { else { cout << "error,please input again" << endl; cout << " If Time please enter T. If Money please enter M." << endl; cin >> cKind; double dTorM = GetWeight(G, nStart, nEnd, cKind); return dTorM; } }
时间: 2024-01-26 14:05:15 浏览: 81
c++实验8-继承与派生上机练习题.doc
可以修改为以下代码:
```c++
double GetWeight(ALGraph G, int nStart, int nEnd, char cKind) {
double dTorM = 0.0;
if (cKind == 'T' || cKind == 'M') {
// 根据用户输入的类型,获取对应边的权值
if (cKind == 'T') {
dTorM = G.arcs[nStart][nEnd].time;
} else {
dTorM = G.arcs[nStart][nEnd].money;
}
} else {
// 处理用户输入错误的情况
cout << "Input error! Please enter T or M." << endl;
cin >> cKind;
dTorM = GetWeight(G, nStart, nEnd, cKind);
}
return dTorM;
}
```
这样修改后,当用户输入错误时,会提示用户重新输入,并且限制递归深度,避免无限递归导致程序崩溃。
阅读全文