2014-09-28 87 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

相关问题