C將幾個極大數字進行從小到大排列

時間 2022-05-17 12:50:10

1樓:匿名使用者

給個思路:

1、先把數字賦值到一個string 中(mfc的話最好是cstring)然後先取第一個數字,如果為負數,存入一個string ,如果不是「-」則存入另一個。

2、先比較正數的數字集合:首先取一下長度,將大小降序排列。

3、再比較同樣長度的數:用個for迴圈,逐一比較從前往後的數字,只要一個數字比另一個大,那麼這個數比那個數大,存入輸出string 比如:1000000000000 和1000010000000 前面5個都相同,但第六個是後者大,所以後者比前者大。

4、將所有數如前排列(注意負數是大的反而小),輸出即可!

p.s.最好用個vector容器,這樣可以直接降序排列!

純手打,給分吧……

剛才看到有那麼多模仿的……記住我是第一個……

2樓:

使用字串(char陣列)儲存每個數字。然後做一個等大的char*陣列,排序的時候拍char*陣列,這樣效率高。

總體排序演算法可以使用快速排序。

對兩個字串進行比較的時候,先看第一個字元是不是-,是的比不是的小;再算長度,短的比長的小;再直接用strcmp比較兩個字串。

比較規則有了就可以實現排序了。

3樓:

按字串的格式輸入,儲存起來。

首先比較正負號

再比較字串長度,

然後再比較每一位大小。

**就不寫了,也很簡單。。

c++程式:輸入n個數,將這些數從大到小排列輸出

4樓:匿名使用者

#include

#include

using namespace std;

int main()

{//指定數bai組長度

duint n;

cin>>n;

//動態分配內zhi

存int* p=new int[n];

//順序

dao輸入

版for(int i=0;i>p[i];

//氣泡排序

int t=0;

for(int i=1;i出

權for(int i=0;i

5樓:匿名使用者

#define size sizeof(aa)/sizeof(int)

void fun(int *a, int n)if (k != i)}}

void main()

, i;

fun(aa, 9);

for (i = 0; i < size; i++)cout<< aa[i]<<" ";

cout << endl;;}

6樓:匿名使用者

#include

using namespace std;

int main()

for(int i=0;i

}for(int i=0;i

c++對n個數從小到大排序

7樓:匿名使用者

應為你原來根本就沒有把輸入的陣列傳遞給

呼叫函式,難為無米之炊啊~!

還有你原來的排序函式裡也有邏輯錯誤

好好看看書,

下面是改好的程式。

#include "iostream"

using namespace std;

pai(int a,int n) //引數傳遞 }

} int main() }

} void pai(float a,int n) //引數傳遞 }

} void pai(double a,int n) //引數傳遞 }

} int main()

若還有不清楚的請補充提問,明白請記得處理問題

8樓:匿名使用者

#include

using namespace std;

// 升序陣列src

void sort(int *src, int len)}}int main()

num = new int[n]; // 申請儲存空間cout << "intput n num: " << endl;

for (int i = 0; i < n; i++)cin >> num[i];

sort(num, n); // 排序

cout << "sort num result: ";

for (int i = 0; i < n; i++) // 列印陣列

cout << num[i] << ' ';

cout << endl;

delete  num; // 釋放記憶體

return 0;}

9樓:新昌

#include

using namespace std;

int main()

{int n;

cin>>n;

int a[n-1];

for(int i=0;i>a[i];

sort(a,a+n);

for(int i=0;i

c++程式設計:將10個整數按從小到大的順序排列

10樓:匿名使用者

可將10個數放入陣列,用氣泡排序將其按升序進行排序。

#include

using namespace std;

// 氣泡排序長度為len的陣列dat(升序)void sort(int *dat, int len)}}void output(int *dat, int len) // 輸出資料

int main()

;sort(a, 10);

output(a, 10);

return 0;}

11樓:

我想到的是,新建一個同樣長度的空陣列

,然後從輸入陣列首位掃描到末位,掃描比當前版數小的數字個權數,如果是0,就將新陣列下標0位賦值為這個數。

計數大小恰巧是下標數目。

這個演算法應該比2l的快速,但是有個bug:兩個數字大小相等的時候就會有問題。如果用可以支援插入的列表結構就沒這個問題。

12樓:匿名使用者

#include "stdafx.h"

#include

using namespace std;

void k(int *a)

couta[i];

}cout<<"輸入完畢"

k(a);}樓主

zhi,我已經測試過dao了,你直接複製生成就可回以了……程式答有中文引導,我保證你絕對可以看懂,也會用,給分吧……這個程式的缺點是一定要輸入10個數,本來我想改成你輸入幾個數都可以的程式,但是怕是你的作業,所以就把它限定了……

13樓:匿名使用者

排序演算法真的很多~

上面的是選擇排序~在交換之前判斷是不是原來數就更好了

14樓:匿名使用者

#include

using namespace std;

int main()

設計一個c++程式,將鍵盤輸入的10個整數從小到大的順序排列(冒泡法),要求排序功能用自定義函式實現。

15樓:匿名使用者

#include

void sort(int a,int n) //氣泡排序法}}void main()

sort(s,10); //呼叫排序函式for(int j=0;j<10;j++)}

c++簡單程式設計,剛學c++,將一組數按從小到大排序

16樓:匿名使用者

for(i=j+1;i=a[i])//加個大括號} 若不加大括號

for(i=j+1;i=a[i])

temp=a[j];//if語句到此處執行完畢a[j]=a[i];//此語句不受if控制a[i]=temp;//此語句不受if控制}

17樓:匿名使用者

你那加大括號 只是語法對了

if(a[j]>=a[i]) 這句 i 和 j 位置反了 ; 外層大迴圈 是j 不是 i

所以應該是:if(a[i]>=a[j]) 改了就好了。

18樓:

應寫為}

19樓:匿名使用者

方法很多

選擇法冒泡法快速排序

堆排序雜湊等等

求c++解決問題:輸入三個整數,要求將三個整數從小到大排列輸出。

20樓:倒黴熊

#include

using namespace std;

//輸入3個整數,從小到大輸出

void main()

//對使用者輸入的整數進行排序

for(int i=1;i<=3;i++)}//輸出整數

cout<<"從小到大輸出:";

for(int i=1;i<=3;i++)cout<

21樓:自由之城

#include int main()

22樓:匿名使用者

#include

using namespace std;

int main()}

c++ :輸入六個數,從小到大排序

問c語言的題,大數運算,計算

大數運算的時候,一般考慮用陣列將每一位的資料儲存起來,你可以去網上查一查大資料的運算。c語言如何實現大數相加問題,各位高手多多指教 可以的。我曾bai經編寫過100的階乘的程 du序zhi。在這個程式中,dao計算結果達到幾千位,這樣專大屬的資料很明顯是任何資料型別都表示不了的。不過,你可以把大數用...

怎樣將幾個工作簿合成工作簿,怎樣將幾個工作簿合成一個工作簿?

這是什麼高階難題呀?簡單的問題。先要確認你是要幾個excel工作簿合併,還是在同一個工作簿中的 合併?幾個工作簿合併問題 你可以如此操作,首先在你幾個工作表中選擇一個主要的工作表。然後把你要合併的其他工作簿開啟,在excel下面的標籤欄點選右鍵,會出現 插入.刪除.重新命名.移動和複製工作表.你點選...

c語言中怎樣將數字變成字母,c語言中怎樣將數字變成字母。

include include int main 具體什麼數字轉成什麼字元,給你碼錶你看看吧看黃圈的地方,就是輸入98 輸出的字元 b 使用sprintf函式可以將數字按指定格式轉換成字串,與printf函式用法差不多, 解決方案1 加 0 後強制型別轉換 如下程式,輸入數字,轉換成字串輸出 inc...