在做冒泡排序時,我看很多程式員第一層回圈都是從0開始的,第一層回圈不是代表回數嗎?所以0回感覺容易使人產生混淆,不易懂。所以我就想從1開始。如果將i作為陣列元素下標,n作為元素個數,j表示回合數。請大神們看下我的這種方式是否正確?還有我的這種觀點在編程開發時是否適用?代碼如下:
#define n 10
#include<iostream>
using namespace std;
int main()
{
int i, j;
int a[n] = { 99,89,79,69,59,49,39,29,19,9 };
for (j = 1;j < n;j++)
{
for (i = 0;i < n - j;i++)
{
if (a[i] > a[i + 1])
{
int swap;
swap = a[i];
a[i] = a[i + 1];
a[i + 1] = swap;
}
}
cout << "第" << j << "回合排序后的結果為:" << endl;
for (i = 0;i < n;i++)
{
cout << a[i] <<"\t";
}
cout << endl;
}
return 0;
}
以上代碼執行結果:

請大神們幫忙指點我的這種想法是否符合編程邏輯和實用性,萬分感謝
uj5u.com熱心網友回復:
只要回圈次數對,你愛從什么初始值開始回圈都可以。所以你這個處理沒問題。uj5u.com熱心網友回復:
需要看明白的是人家不代表回合數而是從陣列的下標0開始,因此理解有所偏差,你的方法只要符合從下標0開始并達到下標的末尾即可,道理是一樣的,至于如何寫法有多種道理一定是一樣的。轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/8148.html
標籤:C++ 語言
上一篇:同一個變數單獨用printf輸出和幾個變數一起用printf輸出結果不一樣
下一篇:關于c++的幾個問題
