C++ 如何在c++;布尔值?

C++ 如何在c++;布尔值?,c++,boolean,boolean-expression,C++,Boolean,Boolean Expression,我有一个小程序把随机数排序成正确的序列号。我想看到每一个随机数移动。应该添加什么内容 #include <iostream> using namespace std; void pindah (int *a, int *b) { int temp = *a; *a = *b; *b = temp; } void tukar (int arr[], int n) { int i, j; bool trade; for (i=0

我有一个小程序把随机数排序成正确的序列号。我想看到每一个随机数移动。应该添加什么内容

    #include <iostream>
using namespace std;

void pindah (int *a, int *b) {
    int temp = *a;
    *a = *b;
    *b = temp;
}

void tukar (int arr[], int n) {
    int i, j;
    bool trade;
    for (i=0; i < n-1; i++) {
        trade = false;
        for (j=0; j < n-i-1; j++) {
            if (arr[j] > arr[j+1]) {
                pindah(&arr[j], &arr[j+1]);
                trade = true;
            }
        }
        if (trade == false)
            break;
    }
}

void cetakArray (int arr[], int n) {
    int i;
    for (i=0; i<n; i++) {
        cout << arr[i] << " "; //tampil data
    }
}

int main () {
    int arr[] = {4, 6, 7, 2, 1, 5, 8, 10, 9, 3};
    int n = sizeof(arr) / sizeof(int); //menghitung jumlah data array
    cout << "setelah diurutkan : \n";
    tukar (arr, n);
    cetakArray (arr, n);

}
#包括
使用名称空间std;
无效品达(整数*a,整数*b){
int temp=*a;
*a=*b;
*b=温度;
}
void tukar(内部arr[],内部n){
int i,j;
布尔贸易;
对于(i=0;iarr[j+1]){
平达(&arr[j],&arr[j+1]);
贸易=真实;
}
}
如果(交易=false)
打破
}
}
无效塞塔卡雷(内角[],内角n){
int i;
对于(i=0;i假设“进入正确的序列”是指从小到大,并且假设您愿意使用C++11,我们可以通过lambda函数轻松获得这一点。请参见以下示例

  #include <vector>
  #include <algorithm>

  std::vector<int> values({4, 6, 7, 2, 1, 5, 8, 10, 9, 3});

  int number_of_moves = 0;

  std::sort(begin(values), end(values), [&](int lhs, int rhs) 
  {
    if (lhs > rhs) 
      return false; 

    ++number_of_moves;

    std::cout << "I am going to swap " << lhs << " with " << rhs << '\n'; 

    return true; 
  });

  std::cout << "I took me " << number_of_moves << " move(s) to sort the vector\n";
#包括
#包括
向量值({4,6,7,2,1,5,8,10,9,3});
int number_of_moves=0;
排序(开始(值),结束(值),[&](int-lhs,int-rhs)
{
如果(左侧>右侧)
返回false;
++移动次数;
std::cout假设“进入正确的序列”的意思是从小到大,并且假设您愿意使用C++11,我们可以通过lambda函数轻松获得这一点。请参见下面的示例

  #include <vector>
  #include <algorithm>

  std::vector<int> values({4, 6, 7, 2, 1, 5, 8, 10, 9, 3});

  int number_of_moves = 0;

  std::sort(begin(values), end(values), [&](int lhs, int rhs) 
  {
    if (lhs > rhs) 
      return false; 

    ++number_of_moves;

    std::cout << "I am going to swap " << lhs << " with " << rhs << '\n'; 

    return true; 
  });

  std::cout << "I took me " << number_of_moves << " move(s) to sort the vector\n";
#包括
#包括
向量值({4,6,7,2,1,5,8,10,9,3});
int number_of_moves=0;
排序(开始(值),结束(值),[&](int-lhs,int-rhs)
{
如果(左侧>右侧)
返回false;
++移动次数;

STD::CUT计数多少次调用<代码> pDANH(和ARR[j],和ARR[j+1)< /C>。在代码< >(Trase= false)/Cuff>添加代码> CETAKARTALL(ARR,N);< /Cord>。“你是用正确的序列号”来表示的?此外,看起来你是用C而不是C++。为什么在布尔中使用?“
bool
不是用来计数的,我是说用随机数来对数字进行排序,但我想看看这个数字的每一步都能计算出你调用pindah(&arr[j],&arr[j+1])
的次数。就在
if(trade==false)
之前添加
cetakArray(arr,n);
你所说的“进入正确的序列号”是什么意思此外,看起来你是用C++而不是C++。?
bool
不用于计数我指的是随机数来对数字进行排序,但我想查看该数字的每一步。如果这些数字是以随机形式确定的,那么会发生什么情况?@Harist,你的意思是要排序的数字是随机生成的吗?是的,这个数字已经存在,但是随机的。代码只显示结果,我想查看过程s swap和结果。我如何添加?序列
中的数字可以随机生成,不会影响答案。我再试一次,你的意思是(1)只对序列的第一个
n
数字进行排序,(2)在
n
交换后开始排序并停止(即使向量尚未排序),(3)计算向量排序所需的交换数量,或(4)还有一些。如果数字是以随机形式确定的呢?@Harist,你的意思是要排序的数字是随机生成的吗?是的,这个数字已经存在,但是随机的。代码只显示结果,我想看到过程交换和结果。我如何添加?序列中的数字可以是随机的我再试一次,你的意思是(1)只对序列的第一个
n
编号进行排序,(2)在
n
交换后开始排序并停止(即使向量尚未排序),(3)计算对向量排序所需的交换数,还是(4)其他什么。