【发布时间】:2017-04-13 05:59:08
【问题描述】:
我的代码如下:
cc_string = "378282246310005"
for (int i = 0, n = strlen(cc_string); i < (n / 2); i++)
{
index = cc_string[i];
sum += (index * 2);
printf("%i\n", sum);
}
但我的输出总是(字符串中的每个数字都加在一起):
102
212
324
424
536
636
736
代替:
22
38
42
50
56
56
56
【问题讨论】:
-
cc_string的类型? -
(如何)你初始化
sum了吗? -
int sum += (index * 2);....sum开始未初始化...。在循环前声明,初始化为0,并在循环内使用。 -
取字符
'1',它不等于int值1。换句话说'1' != 1。阅读例如this ASCII table(ASCII 是最常见的字符编码)应该对您有所帮助。 -
int sum;应该位于'for'循环之外,并且如前所述,它应该被初始化。