2014-09-28 89 views
-3

使用相同的我用於不同的目的似乎沒有問題,爲什麼這樣呢?如果使用米相同I用於在以及用於循環,不能使用相同的我爲不同的任務,爲什麼?

#include<iostream> 
using namespace std; 
int main() 
{ 
    int g,n,i=0,sum; 
    cin>>g; 
    while(i<g) 
    { 
     cin>>n; 
     int a[n]; 
     for(i=0;i<n;i++) 
      cin>>a[i]; 
     for(i=0;i<n;i+=2) 
     {  
      "code" 
     } 
     cout<<sum; 
     i++; 
    } 
    return 0; 
} 

的代碼沒有工作的bt它的工作,如果我使用了不同的參數兩者。 參數的任務是存儲counter.so爲什麼它的nt工作?

+1

使用了'i'兩種不同的目的是 - 使用兩個不同的變量。 – 2014-09-28 07:39:26

+0

另外'j'在'main'的範圍內聲明,但從未在那裏使用過。而'main'中最內層的''''循環將使'sum'最終成爲數組'a'的第一個元素和最後一個元素的總和。如果這是你想達到的目標,那麼循環就沒有必要了。 – robbannn 2014-09-28 07:54:51

+0

@Anshul Sheoliha變數g是什麼意思? – 2014-09-28 08:02:09

回答

1

用作程序模板的下列代碼。至於你的代碼中的錯誤,你可以在你的帖子的評論中找到他們的描述:)至少這個循環

for(i=0;i<n;i++) 
    {  
     sum=a[0]; 
     sum+=a[i]; 
    } 

沒有任何意義。

給你。

#include <iostream> 

void bubblesort(int a[], size_t n) 
{ 
    for (size_t i = 0; i < n; i++) 
    { 
     for (size_t j = 0; j < n - i - 1; j++) 
     { 
      if (a[j + 1] < a[j]) 
      { 
       int x = a[j]; 
       a[j] = a[j + 1]; 
       a[j + 1] = x; 
      } 
     } 
    } 
} 


int main() 
{ 
    std::cout << "Enter number of elements: "; 

    size_t n = 0; 
    std::cin >> n; 

    if (n != 0) 
    { 
     int *a = new int[n]; 

     std::cout << "Enter " << n << " integers: "; 

     for (size_t i = 0; i < n; i++) std::cin >> a[i]; 

     std::cout << "Original numbers:"; 
     for (size_t i = 0; i < n; i++) std::cout << ' ' << a[i]; 
     std::cout << std::endl; 

     bubblesort(a, n); 

     std::cout << "Sorted numbers:"; 
     for (size_t i = 0; i < n; i++) std::cout << ' ' << a[i]; 
     std::cout << std::endl; 

     long long sum = 0; 

     for (size_t i = 0; i < n; i++) sum += a[i]; 

     std::cout << "Sum of the numbers is " << sum << std::endl; 

     delete [] a; 
    } 

    return 0; 
} 

例如如果進入

10 
9 8 7 6 5 4 3 2 1 0 

然後輸出將

Original numbers: 9 8 7 6 5 4 3 2 1 0 
Sorted numbers: 0 1 2 3 4 5 6 7 8 9 
Sum of the numbers is 45 
+0

謝謝先生,我只是想知道爲什麼外層循環只運行一次,即使米給g任何大於1的整數。我jst編輯我的問題。如果m使用while(g--)它可以正常工作,那麼while(i 2014-09-30 19:39:45

+0

@Anshul Sheoliha如果你有其他代碼的問題,你應該創建一個新的線程。因此,將我的答案標記爲關閉該線程的最佳選擇。至於你的新代碼比它沒有任何意義。例如,變量總和未被初始化,並且在代碼中未被捕獲。 – 2014-10-01 06:44:47

+0

,我有問題的while循環,而不是與bubblesort,雖然我會爲前面提到的問題引用錯誤的標題而致歉。那是關於bubblesort的。因此你的答案是爲bubblesort。這也幫助我理解我的代碼中的問題。至於te正確的答案,我自己。 – 2014-10-01 07:53:39

相關問題