有人可以告訴我爲什麼我的程序不斷得到錯誤的答案嗎?它必須計算總和中進位操作的數量。我試過每個測試用例都出現在我的腦海裏。我沒有得到錯誤的輸出。計數進位操作
問題描述:
孩子們被教導要從右到左的一個數字一次添加多位數。許多人發現「攜帶」操作 - 其中1從一個數字位置被攜帶到下一個位置 - 是一個重大挑戰。你的工作是計算一組附加問題中每一個的攜帶操作次數,以便教育者可以評估它們的難度。
輸入
每行輸入包含兩個小於10位數的無符號整數。輸入的最後一行包含0 0
輸出
對於除了最後你應該計算並打印進位操作,將導致從將兩個數的數輸入的每一行,在以下所示的格式。
採樣輸入
123 456
555 555
123 594
0 0
樣本輸出
No carry operation.
3 carry operations.
1 carry operation.
這裏是我當前的代碼:
#include<stdio.h>
int main()
{
unsigned long long int a,b,m,n,rem_m,rem_n,judge=0,sum,count;
while((scanf("%llu%llu",&m,&n))==2)
{
if(m==0 && n==0)
{
break;
}
count=0;
while(m!=0 && n!=0)
{
rem_m=m%10;
rem_n=n%10;
if(judge==1)
{
rem_m++;
}
sum = rem_m+rem_n;
judge=0;
if(sum>=10)
{
count++;
judge++;
}
m=m/10;
n=n/10;
}
if(count==0)
{
printf("No carry operation.\n");
}
else
{
printf("%llu carry operations.\n",count);
}
}
return 0;
}
那麼是什麼問題?沒有得到「0 0」的答案? – CIsForCookies
編譯時,始終啓用所有警告(對於gcc,至少:'-Wall -Wextra -pedantic'),然後修復警告。例如:對於發佈的代碼,編譯器會警告未使用的變量'a'和未使用的變量'b'。強烈建議將每個變量聲明放在單獨的行中,以便我們可讀性和便於記錄。 – user3629249
代碼應該在開始時提供適當的提示輸出。否則用戶只剩下一個閃爍的光標,並且沒有指示他們應該下一步該做什麼。 – user3629249