如何将此函数转换为循环
How do I convert this function into a loop?
我有一个包含小写字母的元素数量未知的字母数组。我写了一个函数,用于将小写数字转换为ASCII值
int returnVal (char x)
{
return (int) x;
}
我正试图将所有这些值合并为一个数字。从这些值中减去87意味着该值总是一个2位数。我能够通过以下方式组合由两个元素组成的数组:
returnVal (foo[0]) - 87) + returnVal (foo[1] - 87) * 100
通过由三个元素组成的阵列
returnVal (foo[0]) - 87) + returnVal (foo[1] -87) * 100 + returnVal (foo[2] - 87) * 100 * 100
我将每个元素乘以它在数组中的位置100^并求和。这意味着[a,b,c]将变为121110(是的,"flip"的值首先为"c",最后为"a"是有意的)。有人能对此进行编程吗(针对未知数量的元素数组)?
编辑:我一生中没有接受过任何形式的编程/计算机科学教育,这不是家庭作业。我正在努力自学,但我陷入了困境;我不知道有谁能亲自向我寻求帮助,所以我在这里请求,向那些被冒犯的人道歉。
第二版:我知道这种观点会惹恼很多人;如果stackoverflow.com不是为了交换信息,它的目的是什么?如果我是一个被家庭作业卡住的孩子(我不是),这肯定是使用堆栈溢出的合理原因吗?这个网站上的许多人似乎都认为,如果一个问题是初学者问的,那么就不值得回答,这完全没关系,因为你的时间是你自己的。然而,真正困扰我的是那些看到他们认为微不足道的问题,说"家庭作业"并立即投票否决的人。我认为,如果没有提问所需的"最低水平"知识,这个网站会更好,在我看来,"精英主义"的心态只是幼稚的。
由于这是一个学习练习,这里有一些提示可以让你自己完成任务:
- 准备一个值,该值将作为您的号码到目前为止的"运行总数">
- 从零开始计算运行总数
- 当您将一个数字(例如
"1234"
)转换为int
时,该值将首先变成1
,然后变成12
,再变成123
,最后变成1234
- 运行总数的最终值是您的最终结果
- 要从上一个值转到下一个值,请将前一个值乘以10,然后将当前数字的值加上
- 您的
returnVal
没有意义,因为在C中,您经常可以避免将char
显式转换为int
。在这种情况下你绝对可以避免 - 制作一个返回十进制数字值的函数
int digit(char c)
,即c-'a'
,会有用得多,因为它可以让你在多个位置上去掉c-87
char array[SIZE];
long factor=1;
long result=0;
for(int i=0; i<SIZE; i++)
{
result+=returnVal(foo[i])-87)*factor;
factor*=100;
}
只要long
足够大以容纳100^the position
的值,当然,只要结果不溢出,这就应该有效。
相关文章:
- 逐字读取文本文件中的每一行并转换为 int(无限循环或崩溃?
- 将手写循环转换为标准库调用
- foreach循环中指针到std::unique_ptr的隐式转换
- 从基于迭代器的for循环转换后,如何在map::find()中调用方法
- 如何将python的for循环转换为c++
- 需要帮助转换以执行循环
- C++ 转换和 lambda - 替换循环
- 转换为基本 for 循环
- 将 NumPy 切片循环转换为C++
- 提升多索引 将索引转换为标记并在索引上循环
- 转换循环以递归基本方法
- 我想将这些循环转换为递归.是否可以将这些循环转换为递归
- C 将循环中的字符串转换为双重
- 每个循环从基本字符串到内部矢量的转换
- 将一个int []转换为字符串,而无需明确的c 循环
- 内部 for 循环:将文本和 int 转换为 const char* 并传递给函数
- 如何在C++中将基本嵌套循环转换为递归循环
- 如何将循环转换为递归
- 如何在不使用循环的情况下将低字节和高字节的字符数组转换为它们的整数数组
- 这个循环是否将int隐式转换为size_t