2015-05-14 22 views
-1

打印N個整數的和。printf在代碼結尾處的每個循環中的每個和

輸入:

第一行包含整數1≤:T≤100,表示的測試用例的數量。每個案例以數字N開始,第二行包含由一個空格字符分隔的N個整數。

輸出:

Ť線,在每一行中,輸入數字的打印總和。

採樣輸入

2 
5 
54 78 0 4 9 
3 
1 2 3 

樣本輸出

145 
6 

這是我試過,但我不希望打印的答案在每個測試用例,而不是我想要打印的總計在最終。

我的代碼,因爲目前的情況是:

#include<stdio.h> 
int main() 
{ 
    int T, N, test, array[20], sum[20]; 
    do { 
     printf ("How Many Test Case \n"); 
     scanf ("%d", &T); 
     if (T<1 || T>100){ 
      printf ("Please Input Integer 0<T<100 \n"); 
     } 
    } while (T<1 || T>100); 

    for (test=0; test<T ; test++){ 
     printf ("How many Integers to sum? \n"); 
     scanf ("%d", &N); 
     int i=0; 
     while(i<N) 
     scanf("%d",&array[i++]); 

     int m=0, sum=0; 
     for (m=0; m<N; m++) 
     { 
      sum = sum + array[m]; 
      printf ("%d\n", sum); 
     } 

    } 
    return 0; 
} 
+0

這是完全不清楚你在問什麼,你能澄清嗎?你想把'printf()'語句移到'for'循環的外面,那麼你爲什麼不這樣做呢?這就是我從這個問題所理解的,我可能是錯的,但對我來說,你不明白你想問什麼。 –

+0

是的,我想讓它printf外循環,但有問題,我想每個測試的答案(總和),在完成所有輸入後說我做100測試, – ammar0466

回答

2

你需要做三件事情。

  1. 擺脫其在for循環打印sumprintf()的。
  2. 定義一個變量(可能是superSum),並加起來最後sum s到superSum
  3. 打印superSumreturn 0;
+0

我沒有得到你,supersum將只打印一行或者全部測試(全部數組),你可以在代碼 – ammar0466

+0

@ ammar0466中進行製作您應該只打印_grand total_。我會盡力提供一個工作的例子,如果這樣的話。給我一些時間。 :-) –

+0

@ ammar0466在這裏,[見本](http://ideone.com/NG0WEl)。 –

0

如果你不想打印每個計算的答案/總和,直到你有總和,你需要不是你for循環條件中打印:

for (m=0; m<N; m++) 
{ 
    sum = sum + array[m]; 
} 
printf ("%d\n", sum); //This will print total sum since it is after for loop calculation. 

這樣您不需要創建新變量,但可以重複使用相同的sum變量,因爲它的值將繼續添加到for循環中。

+0

但我有很多的總和,在問題中我有2組數字,所以我應該得到2總和,如果我做了100總和[100],如何調用每個總和在循環之外。 – ammar0466

+0

@ ammar0466我不明白你在說什麼。你的數組中有很多數字要加到'sum'上,但你只有一個總和'sum'。如果你想區分「總和」前後,那很好。在計算之前,您可以預先打印'sum'。但我不太確定這是你在說什麼。 – Javia1492

+0

是的,我想區分前期和後期總和, 但我不想在下一次計算之前預先打印。 我想在完成所有輸入後打印所有答案。 你可以做成代碼謝謝你理解我 – ammar0466