任务:
“在这个小作业中,您将获得一串空格分隔的数字,并且必须返回最大和最小的数字。
Examples
highAndLow("1 2 3 4 5"); // return "5 1"
highAndLow("1 2 -3 4 5"); // return "5 -3"
highAndLow("1 9 3 4 -5"); // return "9 -5"
注意 所有数字都是有效的 Int32,无需验证。输入字符串中始终至少有一个数字。输出字符串必须是由一个空格分隔的两个数字,最大的数字在前。”
我的代码:
#include <string>
using namespace std;
string highAndLow(const string& numbers){
string::iterator it;
int h, l;
for(it = &numbers.begin(); it != &numbers.end(); ++it) {
if (it == &numbers.begin()) {
h = (int*)it;
l = (int*)it;
}
else {
if (h < (int)it) {
h = (int*)it;
}
if (l > (int*)it) {
l = (int*)it;
}
}
return string(h + " " + l + "\n");
}
}
我刚开始学习SRR几天,请不要太严厉地评判。
让我们从您的代码根本无法编译的事实开始。即使编译通过,也无法运行。字符串迭代器迭代字符,它与
int
和将变量分配给某种int
强制转换为int*
...的类型无关。总之,一切都很糟糕:(
我会这样做:
或者甚至像这样: