我试图计算5个连续整数的乘积,但结果完全错误。我觉得我的逻辑是正确的,但为什么它让我看到一个虚幻的数字:344362200
在C中查找5个连续整数的乘积C
序列号是从1到10,代码如下(仅仅是用于测试):
void problem8()
{
char *input = "123456789";
char c;
int step = 5, i = 0, prod = 0, temp = 1;
for (; i < step; i++)
{
temp *= *(input + i);
printf("%d\n", temp);
}
}
输出是真奇怪!在第一个循环中,结果是42 @@,而它应该只有1和1。我从*(输入+ 0)或1 2 4等检查了个别结果,这是正确的。但产品是错误的。
那么你去了,答案是42.不是它应该是49吗?这是如果我编译你的代码。 – this
尝试'input [i] - '0''而不是'*(input + i)'。 – zwol