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) cout }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語言如何實現大數相加問題,各位高手多多指教 可以的。我曾bai經編寫過100的階乘的程 du序zhi。在這個程式中,dao計算結果達到幾千位,這樣專大屬的資料很明顯是任何資料型別都表示不了的。不過,你可以把大數用... 這是什麼高階難題呀?簡單的問題。先要確認你是要幾個excel工作簿合併,還是在同一個工作簿中的 合併?幾個工作簿合併問題 你可以如此操作,首先在你幾個工作表中選擇一個主要的工作表。然後把你要合併的其他工作簿開啟,在excel下面的標籤欄點選右鍵,會出現 插入.刪除.重新命名.移動和複製工作表.你點選... include include int main 具體什麼數字轉成什麼字元,給你碼錶你看看吧看黃圈的地方,就是輸入98 輸出的字元 b 使用sprintf函式可以將數字按指定格式轉換成字串,與printf函式用法差不多, 解決方案1 加 0 後強制型別轉換 如下程式,輸入數字,轉換成字串輸出 inc...問c語言的題,大數運算,計算
怎樣將幾個工作簿合成工作簿,怎樣將幾個工作簿合成一個工作簿?
c語言中怎樣將數字變成字母,c語言中怎樣將數字變成字母。