[英]Sum of digits with test cases in C
我試圖用測試用例找到數字的sum
。 但問題是在我找到一個sum
,這個sum
會加到下一個sum
但我只有那個數字的一個特定sum
。 請幫忙。 這是我的代碼:
#include <stdio.h>
int main() {
int t, n, i, r, sum=0;
scanf("%d", &t);
for(i=0; i<t; i++) {
scanf("%d", &n);
while(n>0) {
r = n % 10;
sum = sum + r;
n = n / 10;
}
printf("%d\n", sum);
}
return 0;
}
這是我的輸出:
3
1234
10
2347
26
8744
49
為什么我之前的sum
加到下一個sum
? 我不理解。
我想要的輸出:
3
1234
10
2347
16
8744
23
問題:
您的變量sum
在程序開始時設置為0
,並且您將每個測試用例的總和添加到同一變量中,而不清除前一個測試用例的結果(通過在下一個測試用例開始之前設置sum = 0
)
可能的解決方案:
在測試用例開始之前初始化您的變量sum
。
代碼:
for(i=0; i<t; i++)
{
scanf("%d", &n);
sum = 0; //Set sum = 0
//Test Case started in while loop
while(n>0) {
r = n % 10;
sum = sum + r;
n = n / 10;
}
printf("%d\n", sum);
}
在循環開始時將sum
設置為0
。 因此,在對下一組元素求和之前,它會被重新初始化為零。
for(i=0; i<t; i++)
{
sum = 0;
scanf("%d", &n);
你需要設置你的sum=0;
在for
循環的第一行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.