【问题标题】:C++ Sorting numbers in arraysC ++对数组中的数字进行排序
【发布时间】:2021-02-11 19:25:36
【问题描述】:

我正在努力解决这个问题:

  • 1 10
  • 2 9
  • 3 8
  • 4 7
  • 5 6

我该怎么做?

我的代码:

 #include <iostream>
    #include <cmath>
    
    using namespace std;
    
    int main()
    {
        const int n=10;
        int Tab[n]={1,2,3,4,5,6,7,8,9,10};
    
    
        for(int i=0; i<5; i++)
            for(int j=5; j>=0; j--)
                cout << Tab[i] << " " << Tab[j] << endl;
    
    
        return 0;
    }

【问题讨论】:

  • 你的问题是什么?
  • 你的数组已经排好序了,不需要再排序了。
  • 不是2 9, 3 8, 4 7, 5 6
  • 是的,因为在您建议的输出中您跳过了 9 但不清楚原因
  • @Slava 我弄错了。我的错。

标签: c++ loops for-loop


【解决方案1】:

我该怎么做?

您不需要 2 个循环,只需使用一个循环并计算第二个索引:

    for(int i=0; i<n/2; i++) 
        cout << Tab[i] << " " << Tab[n-i-1] << endl;

Live example

这种形式的 PS 对于具有奇数个元素的数组,它将跳过中间一个。如果您希望它被打印两次,请将循环条件更改为:

    for(int i=0; i<(n+1)/2; i++) 

对于偶数元素,它会像以前一样工作。

【讨论】:

  • *1 0 *2 10 *3 10 *4 9 *5 8
  • 搞错了,应该是-1而不是+1,现在已经修复了,看live example
【解决方案2】:

您的代码存在多个问题。

  1. 您需要迭代数组的所有元素。所以 for 循环条件应该是 i

  2. 有多种排序算法可以对数组进行排序,在每种算法中,您都需要将正在处理的元素与其他元素进行比较,以确定其在最终数组中的位置。

伪代码应该是这样的

first for loop
    second for loop 
      if element ith  > element jth   //assuming you wanted to sort in ascending format
         swap(element i and j)

我没有分享完整的代码,因为这似乎是一个家庭作业问题,我建议你应该尝试自己解决。

如果您发现任何其他问题。请更新您的问题。

【讨论】:

    【解决方案3】:

    如果要对数组进行排序,可以使用 std::sort 函数。此函数适用于数组或向量。你的是数组。 需要两个参数:数组的开头和希望数组排序的长度 n。 示例

    #include <bits/stdc++.h>
    using namespace std;
     
    int main()
    {
        int arr[] = { 1, 5, 8, 9, 6, 7, 3, 4, 2, 0 };
        int n = sizeof(arr) / sizeof(arr[0]);
     
        sort(arr, arr + n);
     
        cout << "\nArray after sorting ";
    
        for (int i = 0; i < n; ++i)
            cout << arr[i] << " ";
     
        return 0;
    }
    

    这将按升序排序。您可以再添加一个参数以降序排序:

    排序(arr,arr + n,更大());

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-19
      • 2013-09-22
      • 2018-04-20
      • 2012-08-31
      • 1970-01-01
      • 2012-09-13
      • 1970-01-01
      • 2011-04-23
      相关资源
      最近更新 更多