簡體   English   中英

C中測試用例的數字總和

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM