欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

c語(yǔ)言中rank函數(shù),rank函數(shù)怎么用c語(yǔ)言

C語(yǔ)言中的排序函數(shù)是什么

include cstdlib 或 #include stdlib.h

成都創(chuàng)新互聯(lián)是專業(yè)的袁州網(wǎng)站建設(shè)公司,袁州接單;提供網(wǎng)站建設(shè)、網(wǎng)站制作,網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行袁州網(wǎng)站開發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!

qsort(void* base, size_t num, size_t width, int(*)compare(const void* elem1, const void* elem2))

參數(shù)表

*base: 待排序的元素(數(shù)組,下標(biāo)0起)。

num: 元素的數(shù)量。

width: 每個(gè)元素的內(nèi)存空間大小(以字節(jié)為單位)。可用sizeof()測(cè)得。

int(*)compare: 指向一個(gè)比較函數(shù)。*elem1 *elem2: 指向待比較的數(shù)據(jù)。

比較函數(shù)的返回值

返回值是int類型,確定elem1與elem2的相對(duì)位置。

elem1在elem2右側(cè)返回正數(shù),elem1在elem2左側(cè)返回負(fù)數(shù)。

控制返回值可以確定升序/降序。

產(chǎn)生隨機(jī)數(shù)的函數(shù)也是rand(),不是rank().

c語(yǔ)言中排名問(wèn)題

#include?stdio.h

#include?stdlib.h

#include?string.h

#define?status?int?

#define?NAME?30?/*各類名稱字?jǐn)?shù)上限*/

#define?STU?100?/*學(xué)生人數(shù)上限*/

#define?SUB?10?/*課程數(shù)上限*/

typedef?struct?record?{

float?score;?/*成績(jī)分?jǐn)?shù)*/

}?record;

typedef?struct?student?{

int?id;?/*索引性質(zhì)的id*/

int?no;?/*學(xué)號(hào)*/

char?name[NAME];?/*姓名*/

record?scores[SUB];?/*各門課成績(jī)分?jǐn)?shù)*/

float?totalScore;?/*總分*/

float?averageScore;?/*平均分*/

int?ranking;?/*名次*/

}?student;

int?subNum?=?3;?/*課程數(shù)*/

char?subject[SUB][NAME]?=?{"數(shù)學(xué)","英語(yǔ)","計(jì)算機(jī)"};?/*課程名稱*/

/**********************以下為函數(shù)聲明**********************/

int?stuInfoEmpty?(student?stu[],?int?stuNum);?/*學(xué)生信息判空*/

status?inputStuInfo?(student?stu[],?int?stuIndex,?int?subNum);?/*錄入單個(gè)學(xué)生信息*/

status?inputAllStuInfo?(student?stu[],?int?*stuNum,?int?subNum);?/*錄入全部學(xué)生信息*/

status?calcStuInfo?(student?stu[],?int?stuIndex,?int?subNum);?/*計(jì)算處理單個(gè)學(xué)生信息*/

status?calcAllStuInfo?(student?stu[],?int?stuNum,?int?subNum);?/*計(jì)算處理全部學(xué)生信息*/

status?printStuInfo?(student?stu[],?int?stuIndex,?int?subNum,?int?inclRanking);?/*輸出單個(gè)學(xué)生信息*/

status?printAllStuInfo?(student?stu[],?int?stuNum,?int?subNum,?int?inclRanking);?/*輸出全部學(xué)生信息*/

status?descSort?(student?stu[],?int?stuNum,?int?subNum);?/*按總分降序排列并錄入名次*/

int?getCommand?(void);?/*輸入命令編號(hào)*/

status?printMeunText?(void);?/*打印菜單文本*/

status?runMeun?(student?stu[],?int?stuNum,?int?subNum);?/*調(diào)出菜單*/

/**********************以上為函數(shù)聲明**********************/

int?main?(void)?{

student?stu[STU]?=?{-1};?/*學(xué)生結(jié)構(gòu)體數(shù)組*/

int?stuNum;

int?i;

runMeun?(stu,?stuNum,?subNum);

return?0;

}

/*學(xué)生信息判空*/

/*為空返回1;不空返回0*/

int?stuInfoEmpty?(student?stu[],?int?stuNum)?{

int?i;

if?(stuNum?==?0)

return?1;

for?(i=0;?istuNum;?i++)

if?(stu[i].id?==?-1)

return?1;

return?0;

}

/*錄入單個(gè)學(xué)生信息*/

status?inputStuInfo?(student?stu[],?int?stuIndex,?int?subNum)?{

int?i;

scanf?("%d",stu[stuIndex].no);?/*學(xué)號(hào)*/

if?(stu[stuIndex].no?==?-1)?{?/*學(xué)號(hào)錄入-1以結(jié)束*/

stu[stuIndex].id?=?-1;

return?-1;?/*本次未錄入*/

}

scanf?("%s",stu[stuIndex].name);??/*姓名*/

for?(i=0;?isubNum;?i++)?{

scanf?("%f",stu[stuIndex].scores[i].score);

}?/*各門課成績(jī)分?jǐn)?shù)*/

for?(i=0;?isubNum;?i++)

if?(stu[stuIndex].scores[i].score100?||?stu[stuIndex].scores[i].score0)

return?0;?/*本次錄入錯(cuò)誤*/

return?1;?/*本次錄入成功*/

}

/*錄入全部學(xué)生信息*/

status?inputAllStuInfo?(student?stu[],?int?*stuNum,?int?subNum)?{

int?i,inputStatus,count;

puts?("======================================================");

puts?("錄入學(xué)生信息");

puts?("======================================================");

putchar?('\n');

if?(*stuNum!=0)?{

printf?("已有%d名學(xué)生信息!\n",*stuNum);

putchar?('\n');

puts?("繼續(xù)錄入以新增(學(xué)號(hào)錄入-1以結(jié)束)↓↓");

putchar?('\n');

}

else?{

puts?("請(qǐng)錄入學(xué)生信息(學(xué)號(hào)錄入-1以結(jié)束)↓↓");

putchar?('\n');

}

/*錄入信息之表頭*/

puts?("------------------------------------------------------");

printf?("\t\t學(xué)號(hào)\t姓名\t");

for?(i=0;?isubNum;?i++)

printf?("%s\t",subject[i]);

putchar?('\n');

puts?("------------------------------------------------------");

/*錄入信息*/

count=0;

i=*stuNum;

while?(1)?{

printf?("第%d名學(xué)生\t",i+1);

stu[i].id?=?i+1;

inputStatus?=?inputStuInfo?(stu,?i,?subNum);

if?(inputStatus==1)?{

i++;

count++;

}

else?if?(inputStatus==0)?{

putchar?('\n');

puts?("成績(jī)輸入錯(cuò)誤!請(qǐng)重新輸入↓");

continue;

}

else?if?(inputStatus==-1)

break;

}

*stuNum?+=?count;

puts?("------------------------------------------------------");

putchar?('\n');

putchar?('\n');

if?(count!=0)

printf?("本次%d名學(xué)生信息錄入完畢!即將返回主菜單。\n",count);

else

printf?("您本次未輸入學(xué)生信息!即將返回主菜單。\n");

putchar?('\n');

puts?("按任意鍵繼續(xù)...");

putchar?('\n');

fflush?(stdin);

getch?();

return?1;

}

/*計(jì)算處理單個(gè)學(xué)生信息*/

status?calcStuInfo?(student?stu[],?int?stuIndex,?int?subNum)?{

int?i;

stu[stuIndex].totalScore?=?stu[stuIndex].averageScore?=?0;

/*計(jì)算總分*/

for?(i=0;?isubNum;?i++)?{

stu[stuIndex].totalScore?+=?stu[stuIndex].scores[i].score;

}

stu[stuIndex].averageScore?=?stu[stuIndex].totalScore/subNum;?/*計(jì)算平均分*/

return?1;

}

/*計(jì)算處理全部學(xué)生信息*/

status?calcAllStuInfo?(student?stu[],?int?stuNum,?int?subNum)?{

int?i;

/*計(jì)算總分、平均分等*/?

for?(i=0;?istuNum;?i++)

calcStuInfo?(stu,?i,?subNum);

return?1;

}

/*輸出單個(gè)學(xué)生信息*/

status?printStuInfo?(student?stu[],?int?stuIndex,?int?subNum,?int?inclRanking)?{

int?i;

if?(inclRanking)

printf?("%d\t",stu[stuIndex].ranking);??/*名次*/

printf?("%d\t",stu[stuIndex].no);?/*學(xué)號(hào)*/

printf?("%s\t",stu[stuIndex].name);??/*姓名*/

for?(i=0;?isubNum;?i++)??/*各門課成績(jī)分?jǐn)?shù)*/

printf?("%.2f\t",stu[stuIndex].scores[i].score);

printf?("%.2f\t",stu[stuIndex].totalScore);??/*總分*/

printf?("%.2f\t",stu[stuIndex].averageScore);??/*平均分*/

putchar?('\n');

return?1;

}

/*輸出全部學(xué)生信息*/

status?printAllStuInfo?(student?stu[],?int?stuNum,?int?subNum,?int?inclRanking)?{

int?i;

if?(stuInfoEmpty?(stu,stuNum))?{

puts?("尚未錄入學(xué)生信息!即將返回主菜單。");

putchar?('\n');

puts?("按任意鍵繼續(xù)...");

putchar?('\n');

fflush?(stdin);

getch?();

return?0;?

}

puts?("======================================================");

puts?("全部學(xué)生信息");

puts?("======================================================");

putchar?('\n');

if?(inclRanking)

printf?("%d名學(xué)生信息如下,按總分由高到低排列名次?↓↓\n",stuNum);

else?

printf?("%d名學(xué)生信息如下?↓↓\n",stuNum);

putchar?('\n');

/*輸出信息之表頭*/

puts?("------------------------------------------------------");

if?(inclRanking)

printf?("名次\t");

printf?("學(xué)號(hào)\t");

printf?("姓名\t");

for?(i=0;?isubNum;?i++)

printf?("%s\t",subject[i]);

printf?("總分\t");

printf?("平均分\t");?

putchar?('\n');

puts?("------------------------------------------------------");

/*輸出信息*/

for?(i=0;?istuNum;?i++)

printStuInfo?(stu,?i,?subNum,?inclRanking);

puts?("------------------------------------------------------");

putchar?('\n');

putchar?('\n');

puts?("學(xué)生信息輸出完畢!即將返回主菜單。");

putchar?('\n');

puts?("按任意鍵繼續(xù)...");

putchar?('\n');

fflush?(stdin);

getch?();

return?1;

}

/*按總分降序排序、錄入名次并輸出*/

status?descSort?(student?stu[],?int?stuNum,?int?subNum)?{

int?i,j;

student?temp;

if?(stuInfoEmpty?(stu,stuNum))

return?0;

/*按總分降序*/

for?(i=0;?istuNum-1;?i++)

for?(j=0;?jstuNum-1-i;?j++)

if?(stu[j].totalScore??stu[j+1].totalScore)?{

temp?=?stu[j];

stu[j]?=?stu[j+1];

stu[j+1]?=?temp;

}

/*錄入名次*/

for?(i=0;?istuNum;?i++)

stu[i].ranking?=?i+1;?

return?1;

}

/*輸入命令編號(hào)*/

int?getCommand?(void)?{

int?key;?/*命令編號(hào)*/

printf("請(qǐng)輸入命令編號(hào)以開啟操作:");

scanf?("%d",key);

return?key;

}

/*打印菜單文本*/

status?printMeunText?(void)?{

puts?("======================================================");

puts?("學(xué)生信息管理");

puts?("------------------------------------------------------");

printf?("%4c\t功能詳情\n",'#');

puts?("------------------------------------------------------");

printf?("%4d\t輸入學(xué)生信息\n",1);

printf?("%4d\t按成績(jī)由高到低排序\n",2);

printf?("%4d\t退出\n",7);

puts?("======================================================");

putchar?('\n');

return?1;

}

status?runMeun?(student?stu[],?int?stuNum,?int?subNum)?{

int?key;

do?{

system("cls");?/*清屏*/

printMeunText?();?/*打印菜單文本*/

key?=?getCommand?();?/*輸入命令編號(hào)*/

putchar('\n');

switch?(key)?{

case?1:?system("cls");?inputAllStuInfo?(stu,?stuNum,?subNum);?calcAllStuInfo?(stu,?stuNum,?subNum);?break;

case?2:?system("cls");?descSort?(stu,?stuNum,?subNum);?printAllStuInfo?(stu,?stuNum,?subNum,?1);?break;

case?7:?puts("程序結(jié)束!\n");?break;

default:puts("輸入錯(cuò)誤,請(qǐng)重新輸入!\n\n\n按任意鍵繼續(xù)...");?getch?();?break;

}

}?while?(key!=7);

getch?();

return?1;

}

運(yùn)行結(jié)果

主菜單

錄入學(xué)生信息

排名次并輸出

c語(yǔ)言,int rank(int key,int []a)是什么意思?

這寫錯(cuò)了吧?

應(yīng)該是

int rank(int key,int a[])

用戶自定義的函數(shù),光看函數(shù)名和參數(shù)表,是不能確定其功能的,這是由編程者自己定義的。

照字面意思,是求key在a數(shù)組中的排名。

c語(yǔ)言中rank函數(shù)怎么用

c語(yǔ)言中rank函數(shù)是自定義的函數(shù)吧?如果是的話,怎么用,還必須看這個(gè)函數(shù)是怎么定義的了。

c語(yǔ)言,為一個(gè)數(shù)加或減一個(gè)0~3的隨機(jī)數(shù)。怎么操作,需要用到rank()函數(shù),謝謝。

int main(){

srand(time(0));

int i = 0;

scanf("%d",i);

i += rand()%7-3;//讓i加上一個(gè)-3到3的數(shù)……

printf("%d",i);

}

網(wǎng)站欄目:c語(yǔ)言中rank函數(shù),rank函數(shù)怎么用c語(yǔ)言
文章分享:http://chinadenli.net/article7/dsipoij.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊(cè)外貿(mào)建站App設(shè)計(jì)網(wǎng)站建設(shè)網(wǎng)站策劃自適應(yīng)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司