上课讲的什么冒泡法,但是我不会填 (*꒦ິ⌓꒦ີ)
第一个是不是cin>>什么什么的,课件上的例子好像和这个差不多但是为什么i会减一个,这里的第二个for没有减,救命ꈨຶꎁꈨຶ
int main()
{
int num[6]; int i, j, temp;
cout << "请输入6个数:\n";
for (i = 0; i < 6; i++)
cin >> num[i]; // 1:将数据存入数组中,用于后续排序
for (i = 0; i < 6; i++) {
// 2:i是正排序第几个数据-1,j是(根据下标)在需要排序的区间的循环,所以需要6-i;而数据的比较交换是j与j+1,那么for循环虚j的最大值-1。即:j的最大值是6-i-1
for (j = 0; j < 6 - i - 1; j++) {
if (num[j] > num[j + 1]) { // 3:由于是按小到达,那么前值大于后置则需要交换位置
// 4:利用一个变量,将两个数据进行交换
temp = num[j];
num[j] = num[j + 1];
num[j + 1] = temp;
}
}
}
cout << "The sorted numbers:\n";
for (i = 0; i < 6; i++) {
cout << num[i]; // 5:将数组中排序完的数据,打印出
}
}
课件上的例子i = 1,本质上就是将前面的j<n-i-1,变为j<n-(i+1),可以理解为将1给了i