【发布时间】:2013-04-06 08:59:20
【问题描述】:
所以我在网上四处寻找,发现有人发布了一些作业问题,我想我想试一试。它处理一个类和一个我不想尝试的称为派生类的东西,(主要是因为我不知道那是什么),但我看到了这些要求,想知道它们是否都可以完成递归,使用类似 void 或 int 函数。这是我得到的:
一个名为 strLength 的方法,它返回字符串的长度。
一个名为 lowerCase 的方法,它返回小写字符的数量。
一个名为 upperCase 的方法,它返回大写字符的数量。
一个名为 vowelCnt 的方法,它返回字符串中元音的数量。
一种称为 charSum 的方法,它返回字符串中所有字符的总和。
我想我可以做到最后一个:
int charSum(string x, int i)
{
if(x.size() == i)
return (0 + x[i]);
else
return charSum(x, i + 1) + x[i];
}
虽然我不太确定用实际的 char 来做,但是为了练习和看看它是如何使用递归完成的,我不太担心天气它是一个 char 还是一个字符串,只是这样它有效。
检查一下,我找到了这个,(注意,这个不是我想出来的,一个叫 eazar001 的人做了...):
int countString(char sample[], int i, int total)
{
if(sample[i] == 0)
{
return total;
}
else
{
return countString(sample, i+1, ++total);
}
}
有没有人知道如何处理列表中的其他内容,或者有什么可以指点我的东西,可以告诉我如何扫描字符串以查找这些东西,(尤其是大写和小写的东西,我有不知道有什么不同)。 感谢任何愿意在我尝试自学时带我学习这些东西的人!
【问题讨论】:
-
您的第二个示例在
else子句中缺少return语句。你所有的问题都应该遵循几乎相同的模式,唯一的区别是它们在递归过程中积累了什么值。 -
这类问题不适合 SO。你应该问一个可以有具体答案的问题。寻求一般性建议会导致持续的讨论,而不是答案。
-
那么我应该分解它们吗?
-
您应该尝试编写它们中的每一个。如果您对其中一个有疑问,请发布一个问题来说明您的尝试。好吧,既然有人为你完成了所有工作,看起来你不会有机会,而且你也不会学习。
-
哦,相信我,我正在学习。这不适合上课,我不只是接受一些答案并使用它。我拿走我得到的任何东西,然后把它来回撕开,直到我有足够的信心向别人解释它而无需查找任何东西,并且能够一时兴起。我通常很难阅读我所拥有的书籍,并且看到代码让我更容易理解和学习。这就是为什么我在知道自己可以做到而不必依靠书本来教我之前不会上课的原因,这也是我在网上搜寻此类奇怪问题的原因。