我試圖計算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