通分 9/24 4/24 10/24 5/24 排序 1/6 5/24 3/8 5/12
本文我們將從以下幾個(gè)部分來(lái)詳細(xì)介紹如何按從小到大的順序?qū)⒎謹(jǐn)?shù)排序:對(duì)任意數(shù)量的分?jǐn)?shù)進(jìn)行排序、使用交叉相乘的方法排列兩個(gè)分?jǐn)?shù)、將大于或等于1的分?jǐn)?shù)進(jìn)行排序、6 參考
盡管給1、3、8這樣的整數(shù)排序很簡(jiǎn)單,但是分?jǐn)?shù)排序就沒(méi)有這么直觀。如果幾個(gè)分?jǐn)?shù)的分母都相同,你可以按照給整數(shù)排序的方法給它們排序,比如1/5、3/5和8/5。如果分?jǐn)?shù)的分母不同,你可以將所有分?jǐn)?shù)的分母轉(zhuǎn)化為相同的數(shù)字,并保證分?jǐn)?shù)的值不變。這個(gè)方法雖然有些麻煩,但只要多加練習(xí),就會(huì)很熟練了。此外,你還能了解到一些比較兩個(gè)分?jǐn)?shù),或者對(duì)像7/3這樣假分?jǐn)?shù)排序的小技巧。第一部分:對(duì)任意數(shù)量的分?jǐn)?shù)進(jìn)行排序
兩個(gè)兩個(gè)看,分子10和15一組,16和24一組。15是10的1.5倍,24是16的1.5倍,那么看兩個(gè)小的分母的1.5倍是多少,一個(gè)大概是580多,比在同一組的另一個(gè)分母大,所以這個(gè)分?jǐn)?shù)反而小,這樣判斷會(huì)簡(jiǎn)單許多
第1步:找到所有分?jǐn)?shù)的公分母。
1、首先打開(kāi)Excel,打開(kāi)要排序的文件 2、點(diǎn)擊上方菜單欄中的“篩馴按鈕,如圖所示 3、可以看到第一行出現(xiàn)了用于篩選的小按鈕,點(diǎn)擊如圖所示按鈕 4、在出現(xiàn)的下拉菜單中即可選擇升序或者降序排列了 5、設(shè)定成功后,Excel即自動(dòng)完成排序了
先利用以下方法算出所有分?jǐn)?shù)的公分母,然后將每個(gè)分?jǐn)?shù)換算成以公分母為分母的分?jǐn)?shù)形式。這樣就能比較方便的比較大小了。公分母(包括最小公分母)是所有分母的公倍數(shù)。你可以通過(guò)以下方法來(lái)求得分?jǐn)?shù)的公分母:
根據(jù)分析可填圖如下: 1 8 < 1 4 < 3 8 < 1 2 < 3 4 < 5 4 < 13 8 < 15 8 .
將所有不同大小的分母相乘。例如,如果你想要比較2/3、5/6和1/3的大小,那么,你可以先將3和6相乘得到公分母,即:3 x 6 = 18。該方法的過(guò)程雖然簡(jiǎn)單易懂,但容易得到最小公分母整數(shù)倍大小的數(shù)值。
5、6、10、15的最小公倍數(shù)是30,所以: 5 13 = 30 78 ; 6 17 = 30 85 ; 10 23 = 30 69 ; 15 33 = 30 66 .因?yàn)椋?6<69<78<85,所以: 30 85 < 30 78 < 30 69 < 30 66 ,也就是 6 17 < 5 13 < 10 23 < 15 33 .故答案為: 6 17 < 5
或者,你可以考慮采用以下這個(gè)方法。首先將不同大小的分母的整數(shù)倍分開(kāi)列出來(lái),直到你看到出現(xiàn)了相同的數(shù)值為止。這個(gè)相同的數(shù)值就是這幾個(gè)分?jǐn)?shù)的公分母。例如,當(dāng)你比較2/3、5/6和1/3的大小關(guān)系時(shí),你先列出分母3的整數(shù)倍數(shù)值:3、6、9、12、15、18。然后列出分母6的整數(shù)倍數(shù)值:6、12、18。此時(shí),在這兩列中都出現(xiàn)了18,那么就用18作為分?jǐn)?shù)的公分母。(當(dāng)然,在本例中,你也可以選取6或12作為公分母,但為了統(tǒng)一,以下范例我們?nèi)?8作為公分母。)
首先,根據(jù)分類(lèi)假分?jǐn)?shù)肯定是比1大的數(shù)字,所以假分?jǐn)?shù)>真分?jǐn)?shù)。根據(jù)約分和通分吧真分?jǐn)?shù)排一下,真分?jǐn)?shù)4/15<3/8<4/10<2/3<5/7,根據(jù)除法把假分?jǐn)?shù)排一下。得住1又2/3<13/9<18/6<25/5。 然后,約分首先看一下分母和分子之間還有沒(méi)有最小公約
第2步:將每個(gè)分?jǐn)?shù)轉(zhuǎn)換為分母為公分母的形式。
1、打開(kāi)excel表格,在表格內(nèi)的A列輸入姓名,在B列輸入分?jǐn)?shù),選中兩列數(shù)據(jù)。 2、然后點(diǎn)擊工具欄中的“數(shù)據(jù)”。 3、在“數(shù)據(jù)”中點(diǎn)擊“排序”。 4、打開(kāi)“排序”對(duì)話框,將“主要關(guān)鍵字”設(shè)置為“列B”,排序依據(jù)為“單元格值”。 5、再將“次序”更改為“降序”,點(diǎn)
記住,當(dāng)你將分?jǐn)?shù)的分子和分母同時(shí)乘以一個(gè)相同的倍數(shù)時(shí),分?jǐn)?shù)的大小并沒(méi)有被改變。根據(jù)該原理,將每個(gè)分?jǐn)?shù)的分子和分母乘以某個(gè)數(shù)值,使得分母大小和公分母大小一致。此時(shí),所有分?jǐn)?shù)的分母都變成一樣大了。下面我們回到例子中,試試將2/3、5/6和1/3換算為分母為18的分?jǐn)?shù)形式吧。
#include #include typedef struct student{ int id; int score; struct student *next;}STU;int stuIndex;void inputStuInfo(STU *stuHead);//輸入學(xué)生信息void orderStuInfo(STU *stuHead);//按照分?jǐn)?shù)高到低順序重組鏈表void printStuInfo(ST
18 ÷ 3 = 6,那么2/3 = (2x6)/(3x6)=12/18
sort是stl里的算法,標(biāo)準(zhǔn)庫(kù)好好看看,有用。sort有兩個(gè)版本,第一個(gè)版本:接受兩個(gè)迭代器(指針),按照容器元素所定義的
18 ÷ 6 = 3,那么5/6 = (5x3)/(6x3)=15/18
1、首先打開(kāi)EXCEL文檔,看到有學(xué)生還有分?jǐn)?shù)兩列,要在C1單元格輸入排名。 2、你要選中需要排序的數(shù)據(jù)。 3、點(diǎn)擊經(jīng)典菜單邊上的開(kāi)始。 4、選擇排序和篩選,點(diǎn)擊降序。 5、彈出對(duì)話框,在主要關(guān)鍵字選擇分?jǐn)?shù),點(diǎn)擊確定,這樣順序就是從大到校若數(shù)
18 ÷ 3 = 6,那么1/3 = (1x6)/(3x6)=6/18
具體操作如下: 1.雙擊鼠標(biāo)左鍵,打開(kāi)WPS表格,如圖演示為打開(kāi)“工作簿1”。 2.本例中選擇按照“第1條”的數(shù)值大小對(duì)名稱進(jìn)行排序。鼠標(biāo)左鍵選中第一列需排列的名稱,在選中的內(nèi)部單擊鼠標(biāo)右鍵,出現(xiàn)內(nèi)容如圖所示,鼠標(biāo)左鍵單擊“自定義排序”。 3.在
第3步:根據(jù)分子的大小來(lái)排序分?jǐn)?shù)。
#include typedef struct {int a;int b;}frac; int main(void) {frac a[10],t;int i,j;for(i=0;i
既然換算后所有分?jǐn)?shù)的分母已經(jīng)相等了,那么我們只需要簡(jiǎn)單地根據(jù)分子的大小來(lái)排序了。將分子從小到大進(jìn)行排列,就代表了分?jǐn)?shù)的排序。將上步例子中的分?jǐn)?shù)進(jìn)行排列,得到:6/18、12/18、15/18。
#include void input(float *g,int n){ int i; for(i=0; i
第4步:將每個(gè)分?jǐn)?shù)轉(zhuǎn)換為原來(lái)的形式。
1、打開(kāi)excel表單,在表單的列A中輸入名稱,在列B中輸入分?jǐn)?shù),并選擇兩列數(shù)據(jù)。 2、然后單擊工具欄中的“數(shù)據(jù)”。 3、單擊“數(shù)據(jù)”中的“排序”。 4、打開(kāi)“排序”對(duì)話框,將“主鍵”設(shè)置為“列B”,并按“單元格值”排序。 5、將“順序”更改為“降序”,然后單擊
在轉(zhuǎn)換的過(guò)程中你需要保持順序不變。你可以記住第一步中每個(gè)分?jǐn)?shù)的換算結(jié)果,也可以進(jìn)行第一步換算的逆運(yùn)算。以上兩種方式都可以將分?jǐn)?shù)轉(zhuǎn)換為原來(lái)的形式。
答案如圖: 公式:E1=SUM(B1:D1) F1=RANK(E1,$E$1:$E$4) A B C D E F 同學(xué)A 67 89 90 246 1 同學(xué)B 63 87 39 189 3 同學(xué)C 76 75 58 209 2
6/18 = (6 ÷ 6)/(18 ÷ 6) = 1/3
1、選中排名下第一個(gè)單元格C2,點(diǎn)擊編輯欄求和符號(hào)邊的三角下拉,選擇其他函數(shù); 2、在搜索欄輸入BANK,點(diǎn)擊轉(zhuǎn)到,選中第一個(gè)RANK函數(shù),點(diǎn)擊確定; 3、填寫(xiě)函數(shù)參數(shù),Number是要排序的數(shù)值,選中A01號(hào)的成績(jī)B2單元格,Ref是要進(jìn)行排序的一組數(shù)值
12/18 = (12 ÷ 6)/(18 ÷ 6) = 2/3
1.如下圖數(shù)據(jù)表,我只按照成績(jī)大小排序; 2.首先你要選中所有數(shù)據(jù),然后在數(shù)據(jù)里面選擇排序; 3.然后就會(huì)彈出對(duì)話框,如下圖; 4.然后主要關(guān)鍵字你選擇成績(jī),然后排序依據(jù)選擇數(shù)值,次序選擇升序,然后點(diǎn)擊確定就可以了,得出的效果如下圖,就可以了;
15/18 = (15 ÷ 3)/(18 ÷ 3) = 5/6
import java.util.Arrays; public class Student { String name,number; double s1,s2,s3,sum; //student方法,返回值為一個(gè)學(xué)生3門(mén)課程分?jǐn)?shù)之和 public double Student(String n,String no,double x1,double x2,double x3){ name=n; number=no;
那么按從小到大的方式將2/3、5/6和1/3排列為:“1/3,2/3,5/6”
可以用Excel 2010中的排序功能。 排序是指一種按照特定的順序,把工作表指定的數(shù)據(jù)重新排列的操作,是數(shù)據(jù)管理分析的一項(xiàng)經(jīng)常性工作。對(duì)工作表數(shù)據(jù)的不同字段,按照一定的方式進(jìn)行排序,可以滿足不同數(shù)據(jù)分析的要求。 在Excel中,排序的遞增順序
第二部分:使用交叉相乘的方法排列兩個(gè)分?jǐn)?shù)
數(shù)據(jù)如果是在A1:A6,則在任意一列第一個(gè)單元格輸入公式: =SUMPRODUCT((A$1:A$6>=A1)/COUNTIF(A$1:A$6,A$1:A$6)) 向下拖動(dòng)復(fù)制公式即可,原數(shù)據(jù)可以不排序。 你根據(jù)你原數(shù)據(jù)的范圍修改公式中相應(yīng)引用就可以了。
第1步:并排著寫(xiě)下兩個(gè)分?jǐn)?shù)。
選中整個(gè)表格。 記住,這里是選中整個(gè)表格,不是某一列。 然后點(diǎn)菜單欄里的 “ 數(shù)據(jù)”--“排序” 跳出一個(gè)對(duì)話框,“主要關(guān)鍵字”選擇分?jǐn)?shù)所在的列
例如,如果你想要比較3/5和2/3的大小,那么就在紙上并排地寫(xiě)下它們。3/5在左側(cè),2/3在右側(cè)。
selecta.學(xué)號(hào),a.姓名,a.班級(jí)編號(hào),avg(b.分?jǐn)?shù))平均分from學(xué)生信息表a,教學(xué)成績(jī)表bwherea.學(xué)號(hào)=b.學(xué)號(hào)groupbya.學(xué)號(hào),a.姓名,a.班級(jí)編號(hào)orderby平均分desc,班級(jí)編號(hào)
第2步:將第一個(gè)分?jǐn)?shù)的分子和第二個(gè)分?jǐn)?shù)的分母相乘。
#include struct record { int number; int mark; }student[11],temp; main() { int i,j,k; for(i=1;i
應(yīng)用到我們的例子中,就是將第一個(gè)分?jǐn)?shù)3/5的分子“3”和第二個(gè)分?jǐn)?shù)2/3的分母“3”相乘,得到3 x 3 =??
D2單元輸入: =LARGE($B$2:$B$20,ROW(A1)) C2單元輸入: =INDIRECT("A"&SMALL(IF($B$2:$B$20=D2,ROW($B$2:$B$20),4^8),COUNTIF($D$2:D2,D2))) C2單元是數(shù)組公式 以 Ctrl+Shift+回車(chē) 代替直接回車(chē)結(jié)束輸入。 下拉兩個(gè)公式
這個(gè)方法就叫做“交叉相乘”。簡(jiǎn)單地說(shuō),就是將處于對(duì)角線位置的數(shù)值相乘。
Java 8 以上(包含java8) Lambda 方式,這種方式比較簡(jiǎn)潔,代碼如下: import java.util.ArrayList;import java.util.List;import java.util.Scanner;public class App20 {public static void main(String[] args) {Scanner scanner = new Scan
第3步:在第一個(gè)分?jǐn)?shù)旁邊寫(xiě)下你剛得到的結(jié)果。
在我們的例子中,3 x 3 = 9,那么在頁(yè)面左側(cè)分?jǐn)?shù)的旁邊寫(xiě)下“9”。
第4步:將第二個(gè)分?jǐn)?shù)的分子和第一個(gè)分?jǐn)?shù)的分母相乘。
應(yīng)用到我們的例子中,就是將3/5的5和2/3的2相乘。使用交叉相乘的方法來(lái)比較分?jǐn)?shù)大小,需要先比較交叉相乘結(jié)果的大小。
第5步:將上步得到的結(jié)果寫(xiě)在第二個(gè)分?jǐn)?shù)旁。
在我們的例子中,將上步的結(jié)果10寫(xiě)在第二個(gè)分?jǐn)?shù)的右側(cè)。
第6步:比較交叉相乘結(jié)果的大小。
在本法中,上述將對(duì)角線數(shù)值相乘得到的結(jié)果稱為“交叉相乘的結(jié)果”。如果其中一個(gè)結(jié)果大于另一個(gè),那么它臨近的分?jǐn)?shù)就大于另一側(cè)的分?jǐn)?shù)。在我們的例子中,由于9小于10,那么3/5就比2/3小。
記住,交叉相乘的結(jié)果需記錄在分子的左上角或右上角。
第7步:了解本方法的原理。
一般來(lái)說(shuō),比較分?jǐn)?shù)的大小需要將分?jǐn)?shù)換算為公分母形式的分?jǐn)?shù)來(lái)進(jìn)行比較。交叉相乘來(lái)比較分?jǐn)?shù)大小這個(gè)方法就是巧妙地借用了這個(gè)原理!它只是跳過(guò)了換算分?jǐn)?shù)的過(guò)程,但原理還是一樣的:分母一致,比較分子的大小。還是沒(méi)法理解嗎?不要緊,讓我們寫(xiě)出例子中使用交叉相乘方法省略的步驟,寫(xiě)出來(lái)步驟后,你就能一目了然了。
3/5=(3x3)/(5x3)=9/15
2/3=(2x5)/(3x5)=10/15
9/15比10/15要?。?小于10)。
那么,3/5小于2/3。
第三部分:將大于或等于1的分?jǐn)?shù)進(jìn)行排序
第1步:如果一個(gè)分?jǐn)?shù)的分子大于它的分母,那么這個(gè)分?jǐn)?shù)就大于1。
例如,8/3的分子8比分母3要大,那么8/3大于1。如果一個(gè)分?jǐn)?shù)的分子和分母大小相等,那么這個(gè)分?jǐn)?shù)就等于1。例如,9/9=1。這兩種分?jǐn)?shù)都屬于“假分?jǐn)?shù)”。以下方法適用于對(duì)假分?jǐn)?shù)進(jìn)行排序。
對(duì)于假分?jǐn)?shù)來(lái)說(shuō),你也可以使用前兩個(gè)方法進(jìn)行排序。但接下來(lái)我們要說(shuō)的方法將能幫助你理解排序原理,也能加快你的計(jì)算速度。
第2步:將假分?jǐn)?shù)轉(zhuǎn)換為帶分?jǐn)?shù)。
帶分?jǐn)?shù)由整數(shù)和分?jǐn)?shù)構(gòu)成。對(duì)于簡(jiǎn)單的分?jǐn)?shù)換算,你可以在頭腦中進(jìn)行換算,而無(wú)需用筆記錄。例如,9/9 = 1。對(duì)于復(fù)雜一些的假分?jǐn)?shù),你需要借助長(zhǎng)除法來(lái)?yè)Q算:長(zhǎng)除法得到的整數(shù)作為帶分?jǐn)?shù)的整數(shù)部分,余數(shù)作為分?jǐn)?shù)。例如:
8/3 = 2 + 2/3
9/9 = 1
19/4 = 4 + 3/4
13/6 = 2 + 1/6
第3步:通過(guò)帶分?jǐn)?shù)中的整數(shù)部分將分?jǐn)?shù)排序。
由于你將假分?jǐn)?shù)轉(zhuǎn)換為帶分?jǐn)?shù),那么你可以更好的了解和比較數(shù)值的大小了。首先,暫時(shí)忽略那些分?jǐn)?shù),通過(guò)整數(shù)部分的數(shù)值來(lái)將帶分?jǐn)?shù)分組。
1是最小的一組
2 + 2/3和2 + 1/6是一組,比整數(shù)為1的那組大(盡管在這里我們還沒(méi)有分清組里的兩個(gè)數(shù)哪個(gè)更大)。
4 + 3/4是最大的一組。
第4步:如果分組后的組里不止有一個(gè)數(shù)字,那么你需要比較它們的分?jǐn)?shù)部分了。
也就是說(shuō),如果轉(zhuǎn)換成帶分?jǐn)?shù)后,有兩個(gè)以上的數(shù)值帶有相同的整數(shù)部分,例如,2 + 2/3和2 + 1/6,那么你需要比較分?jǐn)?shù)部分來(lái)辨別大小。你可以使用前兩部分的方法來(lái)比較分?jǐn)?shù)的大小。例如,在比較2 + 2/3和2 + 1/6時(shí),將分?jǐn)?shù)部分換算為帶有相同公分母的分?jǐn)?shù):
2/3 = (2x2)/(3x2) = 4/6
1/6 = 1/6
4/6比1/6大
那么,2 + 4/6比2 + 1/6大
也就是說(shuō),2 + 2/3比2 + 1/6大。
第5步:通過(guò)上述結(jié)果來(lái)排序帶分?jǐn)?shù)。
當(dāng)你把帶分?jǐn)?shù)分組、且得到組內(nèi)分?jǐn)?shù)的大小關(guān)系后,你就可以將帶分?jǐn)?shù)進(jìn)行排序了。根據(jù)上步結(jié)果,例子中分?jǐn)?shù)的排序就是1,2 + 1/6, 2 + 2/3,4 + 3/4。
第6步:將帶分?jǐn)?shù)轉(zhuǎn)換為原始分?jǐn)?shù)形式。
保持它們的順序不變,然后將帶分?jǐn)?shù)轉(zhuǎn)換為假分?jǐn)?shù)。那么最后結(jié)果為:9/9,8/3,13/6,19/4。
小提示
當(dāng)你需要將許多分?jǐn)?shù)進(jìn)行排序時(shí),最好將其分為由2、3、4個(gè)分?jǐn)?shù)組成的小組,這樣能幫助你準(zhǔn)確快速的排序。
找到分母的最小公分母可以幫助你更好地排序分?jǐn)?shù),但事實(shí)上,任何一個(gè)公分母都可以幫助排序。在排序2/3、5/6和1/3時(shí),你可以嘗試使用36作為公分母來(lái)進(jìn)行運(yùn)算。你將發(fā)現(xiàn),不論使用哪個(gè)公分母,得到的結(jié)果是一樣的。
如果分?jǐn)?shù)的分子相同,你可以根據(jù)分母越大分?jǐn)?shù)越小的原理進(jìn)行排序。例如,1/8 < 1/7 < 1/6 < 1/5。如果不理解的話,可以想象將一個(gè)披薩分割成很多份。如果將披薩分成兩份和八份來(lái)比較,分成兩份的那份披薩會(huì)大一些。這樣是不是就容易理解啦。
參考
http://www.mathsisfun.com/least-common-denominator.html
http://www.mathsisfun.com/algebra/cross-multiply.html
http://www.mathvillage.info/node/76
http://www.mathgoodies.com/lessons/fractions/order.html
http://mathcentral.uregina.ca/QQ/database/QQ.09.06/justin2.html
http://www.mathvillage.info/node/76
擴(kuò)展閱讀,以下內(nèi)容您可能還感興趣。
excel中把學(xué)生名單和分?jǐn)?shù)從高到低排序
1、打開(kāi)excel表格,在表格內(nèi)的A列輸入姓名,在B列輸入分?jǐn)?shù),選中兩列數(shù)據(jù)。
2、然后點(diǎn)擊工具欄中的“數(shù)據(jù)”。
3、在“數(shù)據(jù)”中點(diǎn)擊“排序”。
4、打開(kāi)“排序”對(duì)話框,將“主要關(guān)鍵字”設(shè)置為“列B”,排序依據(jù)為“單元格值”。
5、再將“次序”更改為“降序”,點(diǎn)擊確定。
6、即可將選中的單元格按照的分?jǐn)?shù)進(jìn)行了從高到低的排序了。
C語(yǔ)言 學(xué)生成績(jī)排序 按學(xué)生的序號(hào)輸入 n 名學(xué)生的成績(jī),按照分?jǐn)?shù)由高到低的順序輸出學(xué)生的名次、序號(hào)和成績(jī)
#include <stdio.h>#include <malloc.h>
typedef struct student
{
int id;
int score;
struct student *next;
}STU;
int stuIndex;
void inputStuInfo(STU *stuHead);//輸入學(xué)生信息
void orderStuInfo(STU *stuHead);//按照分?jǐn)?shù)高到低順序重組鏈表
void printStuInfo(STU *stuHead,int flag);//打印學(xué)生信息。參數(shù)flag=0:正常打印鏈表信息。flag!=0:打印排序后的名次信息
int main()
{
STU *stuHead=(STU *)malloc(sizeof(STU));
stuHead->next=NULL;
stuIndex=1;
inputStuInfo(stuHead);
printf("--打印原始輸入的鏈表!--n");
printStuInfo(stuHead,0);
printf("--開(kāi)始按分?jǐn)?shù)降序排列!--n");
orderStuInfo(stuHead);
printf("--鏈表按降序重組完成!--n");
printf("--打印降序排序的鏈表!--n");
printStuInfo(stuHead,1);
return 0;
}
void orderStuInfo(STU *stuHead)
{
STU *stuSave1=NULL,*stuSave2=NULL,stuSave3;
stuSave1=stuHead;
while(stuSave1->next!=NULL)//冒泡排序
{
stuSave2=stuSave1->next;
while(stuSave2->next!=NULL)
{
if(stuSave1->next->score<stuSave2->next->score)//交換成員值,保留原鏈表指針值
{
stuSave3=*(stuSave1->next);
stuSave1->next->id=stuSave2->next->id;
stuSave1->next->score=stuSave2->next->score;
stuSave2->next->id=stuSave3.id;
stuSave2->next->score=stuSave3.score;
}
stuSave2=stuSave2->next;
}
stuSave1=stuSave1->next;
}
}
void printStuInfo(STU *stuHead,int flag)
{
int i=1;
while(stuHead->next!=NULL)
{
if(flag==0)
printf("學(xué)生%d,成績(jī)%dn",stuHead->next->id,stuHead->next->score);
else
printf("第%d名,學(xué)生%d,成績(jī)%dn",i++,stuHead->next->id,stuHead->next->score);
stuHead=stuHead->next;
}
}
void inputStuInfo(STU *stuHead)
{
int score;
STU *stuNew=NULL,*stuTail=NULL;
while(1)
{
printf("輸入學(xué)生%d的成績(jī):(輸入負(fù)數(shù)結(jié)束輸入)",stuIndex);
scanf("%d",&score);
if(score<0)
break;
stuNew=(STU *)malloc(sizeof(STU));
stuNew->score=score;
stuNew->id=stuIndex;
stuNew->next=NULL;
if(stuHead->next==NULL)
stuHead->next=stuNew;
else
stuTail->next=stuNew;
stuTail=stuNew;
stuIndex++;
}
}
C++中sort排序問(wèn)題 問(wèn)題就是按分?jǐn)?shù),姓名,年齡的順序給學(xué)生排序,書(shū)上大概兩個(gè)方法如下: 1
sort是stl里的算法,標(biāo)準(zhǔn)庫(kù)好好看看,有用。sort有兩個(gè)版本,第一個(gè)版本:接受兩個(gè)迭代器(指針),按照容器元素所定義的<來(lái)進(jìn)行排序,這里重載一下<是為了讓元素按需要的規(guī)則進(jìn)行排序,重載就是為了定義這一規(guī)則更多追問(wèn)追答追答第二個(gè)版本:接受兩個(gè)迭代器和一個(gè)函數(shù)指針,第三個(gè)參數(shù)指向的函數(shù)同樣是用以描述容器元素<的比較規(guī)則,這樣容器中的元素就按照參數(shù)指向的函數(shù)定義的規(guī)則進(jìn)行排序了。一個(gè)建議,c++盡量少用數(shù)組和指針,多用標(biāo)準(zhǔn)庫(kù)容器和迭代器類(lèi)就是將變量和函數(shù)放在一起,作為一個(gè)自定義類(lèi)型的屬性內(nèi)容。類(lèi)似于struct,考試一般涉及虛基類(lèi)和友元等知識(shí),你這樣急于求成,僅僅依靠c是不可以的,但是上手會(huì)很快追問(wèn)是很急啊 還有一個(gè)多月研究生復(fù)試,我是學(xué)管理的跨考計(jì)算機(jī)你再解釋下那個(gè)定義<是什么意思你說(shuō)的這些原理我大概明白了,你再幫我分析一下怎么定義<,就是上面的幾個(gè)條件句,怎么先定義了一個(gè)數(shù)據(jù)結(jié)構(gòu)變量b,然后score<b.score,然后計(jì)算機(jī)就知道了?struct e{
char name[101];
int age;
int score;
bool operator < (const e & b) const{
if(score!=b.score) return score<b.score;
int tmp=strcmp(name,b.name);
if(tmp!=0) return tmp<0;
else return age<b.age;
}const是啥追答operator就是重載關(guān)鍵詞,這個(gè)你看見(jiàn)就知道就行了,不用理解太深。這里的score是a的,b的score作為參數(shù)傳進(jìn)來(lái),進(jìn)行比較,然后重載過(guò)程結(jié)束。之后元素間的<比較規(guī)則就是重載的規(guī)則了。const e&b的那個(gè)const?追問(wèn)不知道 不是兩個(gè)嗎追答指向常量的引用,因?yàn)閷?duì)于b只作讀訪問(wèn),并不需要寫(xiě)訪問(wèn),所以用const引用做參數(shù)。用引用是因?yàn)橐帽瓤截悅鲄㈨憫?yīng)更快,效率更高,是c++程序設(shè)計(jì)的好習(xí)慣你說(shuō)哪里的const啊剛剛的糾正一下,是b做參數(shù)傳進(jìn)來(lái)你說(shuō)后面那個(gè)const?追問(wèn)其實(shí)函數(shù)那個(gè)也不很理解,return只能返還<關(guān)系嗎?可以遞增嗎追答它是表示該成員函數(shù)是一個(gè)const成員函數(shù),它的this指針是指向const的,原因也是只需要讀訪問(wèn),而且可以對(duì)常量e對(duì)象進(jìn)行訪問(wèn)。追問(wèn)這樣說(shuō)吧 如果我想按分?jǐn)?shù)遞減,然后姓名遞增,最后年齡遞減該怎么寫(xiě)?追答這個(gè)第二個(gè)const就是為了方便只讀訪問(wèn)的,其實(shí)你不寫(xiě)在這里沒(méi)什么太大影響,考試時(shí)候看見(jiàn)這個(gè)位置的const可以無(wú)視那個(gè)重載不是幫你寫(xiě)好了嗎?重載定義了元素的比較規(guī)則,sort直接按這一規(guī)則進(jìn)行排序。你要的目標(biāo)其實(shí)已經(jīng)完成了啊…追問(wèn)先不說(shuō)第二個(gè)重載 第一個(gè)函數(shù)法,是不是這樣:sort以次讀a b,然后讓他們使cmp函數(shù)為真,如果假順序就到過(guò)來(lái)?追答哎呀這個(gè)你不用理解太深,一時(shí)半會(huì)怎么給你說(shuō)明白?你不是時(shí)間緊么?簡(jiǎn)明點(diǎn)告訴你好了:你排序的時(shí)候是不是一般通過(guò)比較大小來(lái)排?比較大小的時(shí)候是不是一定會(huì)用到比較運(yùn)算符?但是一般情況下默認(rèn)做比較然后排序的時(shí)候是根據(jù)<和==符號(hào)做比較的,說(shuō)白了就是一遇到需要比較的時(shí)候,就自動(dòng)調(diào)用容器的<來(lái)比較。但是類(lèi)本身是沒(méi)有<運(yùn)算的,所以定義了一個(gè)函數(shù),將元素間的<按你所需要的方式定義,以此作為規(guī)則傳遞給sort,sort將這個(gè)規(guī)則作為<來(lái)對(duì)元素進(jìn)行比較排序你這樣去考試真的大丈夫?我這個(gè)根本不是計(jì)算機(jī)專(zhuān)業(yè)的情何以堪?這個(gè)你肯定懂:<運(yùn)算返回的結(jié)果是一個(gè)bool值講到這個(gè)地步…是不是大概明白了?話說(shuō)這東西研究生要考這么細(xì)?大概考些什么東西都?追問(wèn)我是給機(jī)試準(zhǔn)備的,想明白點(diǎn)萬(wàn)一變一變別不會(huì)做了,研究生復(fù)試機(jī)試大概考:排序,日期,hash,排版,查找,貪心,棧,哈夫曼,二叉樹(shù),數(shù)學(xué)問(wèn)題像數(shù)位、進(jìn)制、公約數(shù)、公倍數(shù)、素?cái)?shù)等,數(shù)據(jù)結(jié)構(gòu)學(xué)的最小生成樹(shù)、最短路徑、拓?fù)渑判虻榷伎?,還有一些動(dòng)態(tài)規(guī)劃和技巧……你可以百度:九度 這網(wǎng)站有模擬和真題謝謝你幫我回答那么多 給你最佳追答考的挺廣的啊…加油噢
EXCEL按分?jǐn)?shù)排列名字
1、首先打開(kāi)EXCEL文檔,看到有學(xué)生還有分?jǐn)?shù)兩列,要在C1單元格輸入排名。
2、你要選中需要排序的數(shù)據(jù)。
3、點(diǎn)擊經(jīng)典菜單邊上的開(kāi)始。
4、選擇排序和篩選,點(diǎn)擊降序。
5、彈出對(duì)話框,在主要關(guān)鍵字選擇分?jǐn)?shù),點(diǎn)擊確定,這樣順序就是從大到小。若數(shù)據(jù)相同,可設(shè)次要關(guān)鍵字,次序?yàn)榻敌颉?/p>
6、然后按順序在排名列中輸入排名數(shù),即完成了本次按分?jǐn)?shù)排名。
wps表格中如何按總分從高到低排序(如圖)
具體操作如下:
1.雙擊鼠標(biāo)左鍵,打開(kāi)WPS表格,如圖演示為打開(kāi)“工作簿1”。
2.本例中選擇按照“第1條”的數(shù)值大小對(duì)名稱進(jìn)行排序。鼠標(biāo)左鍵選中第一列需排列的名稱,在選中的內(nèi)部單擊鼠標(biāo)右鍵,出現(xiàn)內(nèi)容如圖所示,鼠標(biāo)左鍵單擊“自定義排序”。
3.在彈出的對(duì)話框中,鼠標(biāo)左鍵單擊“排序”。
4.在新出現(xiàn)的對(duì)話框中,選擇主要關(guān)鍵字為“第1條”,排序依據(jù)為“數(shù)值”,次序?yàn)椤吧颉薄?/p>
5.最后得到的結(jié)果則是以“第1條”數(shù)值為準(zhǔn)進(jìn)行升序的,如圖所示。Excel功能相同,按照上述操作即可。
聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com