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)其他什么。