[英]C++ Sorting numbers in arrays
我正在努力解決這個問題:
我怎么做?
我的代碼:
#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 個循環,只需使用一個循環並計算第二個索引:
for(int i=0; i<n/2; i++)
cout << Tab[i] << " " << Tab[n-i-1] << endl;
對於具有奇數個元素的數組,這種形式的 PS 將跳過中間一個。 如果您希望它被打印兩次,請將循環條件更改為:
for(int i=0; i<(n+1)/2; i++)
對於偶數元素,它會像以前一樣工作。
您的代碼存在多個問題。
您需要迭代數組的所有元素。 所以for循環條件應該是i<(數組長度)。
有多種排序算法可以對數組進行排序,在每種算法中,您都需要將正在處理的元素與其他元素進行比較,以確定其在最終數組中的位置。
偽代碼應該看起來像
first for loop
second for loop
if element ith > element jth //assuming you wanted to sort in ascending format
swap(element i and j)
我沒有分享完整的代碼,因為這似乎是一個家庭作業問題,我建議你應該嘗試自己解決。
如果您看到任何其他問題。 請更新您的問題。
如果要對數組進行排序,可以使用 std::sort function。 這個 function 適用於數組或向量。 你的是數組。 需要兩個 arguments:數組的開頭和希望數組排序的長度 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,更大());
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.