我目前正在尝试编写一个按字母顺序排列字符串的程序。我有一个错误。这就是minLocation不带2个参数。我是一个相当新的编程可以任何人给我一个提示,为什么我的代码的这部分是错的?
int minLocation(string list[], int first, int last)
{
int mIndex=first;
int loc = 0;
for (loc = first+1; loc <= last; loc++)
if (list[loc] < list [mIndex])
mIndex = loc;
return mIndex;
void Sort(string slist[],int length)
{
int mIndex;
for (int loc = 0; loc < length-1; loc++)
{
mIndex = minLocation (loc,length-1);
swap (loc, minIndex);
}
}
答案 0 :(得分:1)
没有看到minLocation
的定义,我们无法分辨。但可以肯定的是,它不需要两个参数 - 编译器不会因为它的乐趣而欺骗你,你通常会认为他们所说的是真的: - )
您需要找到定义,例如:
int minLocation (int loc) { ...
并弄清楚你实际打算如何调用它。鉴于它看起来它试图找到两个索引中的哪个具有较低的值,它可能需要 more 而不是两个参数。
最重要的是,您需要决定是否需要名为mIndex
或minIndex
的变量。大多数编译器都不够聪明,无法为您解决这个问题。
根据您muinFunction
定义为:
int minLocation (string list[], int first, int last) { ...
很明显,它还需要字符串数组以及两个索引。您需要将呼叫更改为:
mIndex = minLocation (slist, loc, length-1);
同时关注swap
电话。根据编码风格,可能具有类似的要求。