真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

c語言中有排序函數(shù) c語言排序的兩種方法

c語言函數(shù)排序問題

錯的地方很多。。改了下,

武陵ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)建站的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18980820575(備注:SSL證書合作)期待與您的合作!

#includestdio.h

int sort(int num[5]);

void main()

{

int numm[5],i,a;

for (i=0;i5;i++)

scanf("%d",numm[i]);

sort(numm); //調用排序

for (i=0;i5;i++)

printf("%d ",numm[i]);

}

int sort(int num[5])

{

int m,n,t;

for (m=0;m4;m++)

for(n=m+1;n5;n++)//冒泡排序

{

if (num[m]num[n])

{

t=num[n];

num[n]=num[m];

num[m]=t;

}

}

return 1;

}

字符串數(shù)組排序(C語言)(qsort庫函數(shù))

聲明一個字符串指針數(shù)組存放每個字符串的首地址,調用庫函數(shù)qusort按題目要求對字符串指針排序,不移動源字符串。關鍵是要設計一個好的比較函數(shù),精巧地解決“按長度、長度相等時按大小”排序的問題。舉例代碼如下:

//#include?"stdafx.h"http://If?the?vc++6.0,?with?this?line.

#include?"stdio.h"

#include?"string.h"

#include?"stdlib.h"

#define?N?10 //字符串個數(shù)

#define?LN?21 //限制字符串長度為20

int?mycmp(const?void?*a,const?void?*b){//比較函數(shù)

char?*pa=*(char?**)a,*pb=*(char?**)b;

int?x=int(strlen(pa)-strlen(pb));//依長度比較

return?x???x?:?strcmp(pa,pb);//長度相等時依大小比較

}

int?main(void){

int?i=0,j=0;

char?*f[N],w[LN*N];//聲明指針數(shù)組f和字符串總空間

printf("Input?%d?string(s)(length=%d)...\n",N,LN);

while(iN){//輸入并將字符串首址賦給f[i]

if(scanf("?%[1234567890]",f[i]=w+j)0??strlen(f[i])LN)

i++,j+=LN;

else?printf("Error,?redo:?Required?length?less?than?%d:",LN);

}

qsort(f,N,sizeof(char?*),mycmp);//調用庫函數(shù)對字符串指針排序

for(i=0;iN;printf("%s\n",f[i++]));//輸出...

return?0;

}

c語言 編寫一個排序函數(shù),實現(xiàn)對主函數(shù)中數(shù)組的升序排序.

經(jīng)典的兩個排序:

(1)選擇排序

#include stdio.h

main()

{

int a[5];

int i,j,k,t;

for (i=0;i5;i++)

scanf("%d",a[i]);

for (i=0;i4;i++)

{

k=i;

for(j=i+1;j5;j++)

if(a[k]a[j])

k=j;

if(k!=i)

{

t=a[k];

a[k]=a[i];

a[i]=t;

}

}

for(i=0;i5;i++)

printf("%3d",a[i]);

}

(2)冒泡排序

#include stdio.h

main()

{

int a[5];

int i,j,t;

for (i=0;i5;i++)

scanf("%d",a[i]);

for (i=0;i4;i++)

for(j=0;j4-i;j++)

{

if(a[j]a[j+1])

{

t=a[j];

a[j]=a[j+1];

a[j+1]=t;

}

}

for (i=0;i5;i++)

printf("%3d",a[i]);

}

如何用函數(shù)實現(xiàn)三個數(shù)的排序(用的是C語言)

一:全局變量

#include?stdio.h

int?a,b,c;??//定義三個全局變量

void?sort()??//不需要參數(shù)

{

int?t;

if(ab)

{

t=a;a=b;b=t;

}

if(bc)

{

t=b;b=c;c=t;

}

if(ab)

{

t=a;a=b;b=t;

}

}

int?main()

{

printf("輸入:");

scanf("%d%d%d",a,b,c);

sort();

printf("排序:%d??%d??%d\n",a,b,c);

return?0;

}

二:指針

#include?stdio.h

void?sort(int?*a,?int?*b,?int?*c)?//參數(shù)傳遞方式:地址傳遞

{?

int?t;

if(*a*b)?

{

t=*a;*a=*b;*b=t;

}

if(*b*c)

{

t=*b;*b=*c;*c=t;

}

if(*a*b)?

{

t=*a;*a=*b;*b=t;

}

}

int?main()

{

int?a,b,c;

printf("輸入:");

scanf("%d%d%d",a,b,c);

sort(a,b,c);???????????????//把地址作為參數(shù)

printf("排序:%d??%d??%d\n",a,b,c);

return?0;

}

C語言排序函數(shù)看不懂,求教!

都搞好了。

#includestdio.h

#includestdlib.h

#includestring.h

#define LEN 30 /* 學號和姓名最大字符數(shù),實際請更改 */

#define N 200 /* 最大學生人數(shù),實際請更改*/

struct record

{

char code[LEN+1]; /* 學號 */

char name[LEN+1]; /* 姓名 */

int age;

char sex[3];

char time[LEN+1];

char add[LEN+1];

char tel[LEN+1];

char mail[LEN+1];

}stu[N];

int k=1,n,m;

int order[N];

void readfile();/* 函數(shù)聲明 */

void sort();

void seek();

void modify();

void insert();

void del();

void display();

void save();

void menu();

int main()

{

while(k)

menu();

system("pause");

return 0;

}

void readfile()/* 建立信息 */

{

char *p="student.dat";

FILE *fp;

int i=0;

if ((fp=fopen("student.dat","r"))==NULL) /* 把此程序和文件student.dat放在同一目錄下 */

{ printf("Open file %s error! Strike any key to exit!",p);

system("pause");

exit(0);

}

while(fscanf(fp,"%s %s%d%s %s %s %s %s",stu[i].code,stu[i].name,stu[i].age,

stu[i].sex,stu[i].time,stu[i].add,stu[i].tel,stu[i].mail)==8)

{

i++;

order[i]=i;

}

fclose(fp);

n=i;

printf("錄入完畢!\n");

}

void seek()

{int i,j,item,flag;

char s1[LEN+1]; /* 以姓名和學號最長長度+1為準 */

printf("------------------\n");

printf("1.按學號查詢\n");

printf("2.按姓名查詢\n");

printf("3.退出本菜單\n");

printf("------------------\n");

while(1)

{ printf("請選擇子菜單編號:");

scanf("%d",item);

flag=0;

switch(item)

{

case 1:

printf("請輸入要查詢的學生的學號:\n");

scanf("%s",s1);

for(i=0;in;i++)

if(strcmp(stu[i].code,s1)==0)

{ flag=1;

printf("該學生學號,姓名,年齡,性別,出生年月,地址,電話,E-mail 分別為:\n");

printf("%s %s %d %s %s %s %s %s\n",stu[i].code,stu[i].name,stu[i].age,

stu[i].sex,stu[i].time,stu[i].add,stu[i].tel,stu[i].mail);

}

if(flag==0)

printf("該學號不存在!\n"); break;

case 2:

printf("請輸入要查詢的學生的姓名:\n");

scanf("%s",s1);

for(i=0;in;i++)

if(strcmp(stu[i].name,s1)==0)

{ flag=1;

printf("該學生學號,姓名,年齡,性別,出生年月,地址,電話,E-mail 分別為:\n");

printf("%s %s %d %s %s %s %s %s\n",stu[i].code,stu[i].name,stu[i].age,

stu[i].sex,stu[i].time,stu[i].add,stu[i].tel,stu[i].mail);

}

if(flag==0)

printf("該姓名不存在!\n"); break;

case 3:return;

default:printf("請在1-3之間選擇\n");

}

}

}

void sort() /*選擇排序*/

{

int i,j,k,t;

for(i=0;in-1;i++)/*共掃視n-1遍*/

{

k=i;

for(j=i+1;jn;j++)

if(strcmp(stu[order[i]].code,stu[order[j]].code)0)

k=j;

if(k!=i)

{/*交換名次*/

t=order[i];

order[i]=order[k];

order[k]=t;

}

}

printf("通訊錄資料按人名號碼從低到高為:\n");

for(i=0;in;i++)

{

printf("%s %s %d %s %s %s %s %s\n",stu[order[i]].code,stu[order[i]].name,stu[order[i]].age,

stu[order[i]].sex,stu[order[i]].time,stu[order[i]].add,stu[order[i]].tel,stu[order[i]].mail);

}

}

void modify() /*修改信息*/

{int i,j,item,num;

char sex1[3],s1[LEN+1],s2[LEN+1]; /* 以姓名和學號最長長度+1為準 */

printf("請輸入要要修改的學生的學號:\n");

scanf("%s",s1);

for(i=0;in;i++)

if(strcmp(stu[i].code,s1)==0)

num=i;

printf("------------------\n");

printf("1.修改姓名\n");

printf("2.修改年齡\n");

printf("3.修改性別\n");

printf("4.修改出生年月\n");

printf("5.修改地址\n");

printf("6.修改電話號碼\n");

printf("7.修改E-mail地址\n");

printf("8.退出本菜單\n");

printf("------------------\n");

while(1)

{ printf("請選擇子菜單編號:");

scanf("%d",item);

switch(item)

{

case 1:

printf("請輸入新的姓名:\n");

scanf("%s",s2);

strcpy(stu[num].name,s2); break;

case 2:

printf("請輸入新的年齡:\n");

scanf("%d",stu[num].age);break;

case 3:

printf("請輸入新的性別:\n");

scanf("%s",sex1);

strcpy(stu[num].sex,sex1); break;

case 4:

printf("請輸入新的出生年月:\n");

scanf("%s",s2);

strcpy(stu[num].time,s2); break;

case 5:

printf("請輸入新的地址:\n");

scanf("%s",s2);

strcpy(stu[num].add,s2); break;

case 6:

printf("請輸入新的電話號碼:\n");

scanf("%s",s2);

strcpy(stu[num].tel,s2); break;

case 7:

printf("請輸入新的E-mail地址:\n");

scanf("%s",s2);

strcpy(stu[num].mail,s2); break;

case 8:return;

default:printf("請在1-8之間選擇\n");

}

}

}

void insert()

{ int i=n,j,flag;

printf("請輸入待增加的學生數(shù):\n");

scanf("%d",m);

do

{ flag=1;

while(flag)

{ flag=0;

printf("請輸入第 %d 個學生的學號:\n",i+1);

scanf("%s",stu[i].code);

for(j=0;ji;j++)

if(strcmp(stu[i].code,stu[j].code)==0)

{ printf("已有該學號,請檢查后重新錄入!\n");

flag=1;

break; /*如有重復立即退出該層循環(huán),提高判斷速度*/

}

}

printf("請輸入第 %d 個學生的姓名:\n",i+1);

scanf("%s",stu[i].name);

printf("請輸入第 %d 個學生的年齡:\n",i+1);

scanf("%d",stu[i].age);

printf("請輸入第 %d 個學生的性別:\n",i+1);

scanf("%s",stu[i].sex);

printf("請輸入第 %d 個學生的出生年月:(格式:年.月)\n",i+1);

scanf("%s",stu[i].time);

printf("請輸入第 %d 個學生的地址:\n",i+1);

scanf("%s",stu[i].add);

printf("請輸入第 %d 個學生的電話:\n",i+1);

scanf("%s",stu[i].tel);

printf("請輸入第 %d 個學生的E-mail:\n",i+1);

scanf("%s",stu[i].mail);

if(flag==0)

{

order[i]=i;

i++;

}

}while(in+m);

n+=m;

printf("錄入完畢!\n\n");

}

void del()

{ int i,j,k,flag=0;

char s1[LEN+1];

printf("請輸入要刪除學生的學號:\n");

scanf("%s",s1);

for(i=0;in;i++)

if(strcmp(stu[order[i]].code,s1)==0)

{ flag=1;

for(j=i;jn-1;j++)

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

}

if(flag==0)

printf("該學號不存在!\n");

if(flag==1)

{ printf("刪除成功,顯示結果請選擇菜單6\n");

n--;

}

}

void display()

{ int i,j;

printf("所有學生的信息為:\n");

for(i=0;in;i++)

{

printf("%s %s %d %s %s %s %s %s\n",stu[order[i]].code,stu[order[i]].name,stu[order[i]].age,

stu[order[i]].sex,stu[order[i]].time,stu[order[i]].add,stu[order[i]].tel,stu[order[i]].mail);

}

}

void save()

{ int i;

FILE *fp;

fp=fopen("student.dat","w");

for(i=0;in;i++)

{ fprintf(fp,"%s %s %d %s %s %s %s %s\n",stu[order[i]].code,stu[order[i]].name,stu[order[i]].age,

stu[order[i]].sex,stu[order[i]].time,stu[order[i]].add,stu[order[i]].tel,stu[order[i]].mail);

}

fclose(fp);

}

void menu()/* 界面 */

{ int num;

printf(" \n\n簡易學生通訊錄系統(tǒng)\n\n");

printf("*****系統(tǒng)功能菜單*****\n");

printf("----------------------\n");

printf("1.讀入學生信息\n");

printf("2.查詢學生信息\n");

printf("3.修改學生信息\n");

printf("4.增加學生信息\n");

printf("5.按學號刪除信息\n");

printf("6.顯示當前信息\n");

printf("7.保存當前學生信息(要把修改保存到文件,退出程序前必須執(zhí)行本項)\n");

printf("8.按學號從低到高排序\n");

printf("9.退出系統(tǒng)\n");

printf("----------------------\n");

printf("請選擇菜單編號:");

scanf("%d",num);

switch(num)

{

case 1:readfile();break;/*在主函數(shù)中調用子函數(shù)時,子函數(shù)不要帶上類型,這和聲明子函數(shù)不同*/

case 2:seek();break;

case 3:modify();break;

case 4:insert();break;

case 5:del();break;

case 6:display();break;

case 7:save();break;

case 8:sort();break;

case 9:k=0;break;

default:printf("請在1-9之間選擇\n");

}

}

c語言怎么用自定義函數(shù)排序

#include stdio.h

#include string.h#define NUM 3

struct student

{

char name[20]; /*姓名*/

long num; /*12位學號*/

double sum; /*總分*/

};

void Create_Students(struct student stu[NUM])

{

struct student *p;

printf("請輸入學生姓名 學號(12位) 總分:\n");

for( p = stu; p stu+NUM; p++)

{

scanf("%s %d %lf",p-name,p-num,p-sum); }

}

void Order_Students(struct student stu[NUM])//起泡法

{

int i,j;

struct student temp;

for(i=NUM-1;i=0;i--)

for(j=0;ji;j++)

if(stu[j].sumstu[j+1].sum)

{

temp = stu[j];

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

stu[j+1]=temp;

}

}

void main()

{

int i=1;

struct student *p;

struct student stu[NUM];

Create_Students(stu);

Order_Students(stu);

printf("%-20s %-13s %-6s %4s\n","姓名","學號(12位)","總成績","名次");

for(p=stu;pstu+NUM;p++,i++)

{

printf("%-20s %-13.0d %-8.2f %2d\n",p-name,p-num,p-sum,i);

}

}//你參考參考,嘿


新聞名稱:c語言中有排序函數(shù) c語言排序的兩種方法
URL地址:http://weahome.cn/article/hhsdgd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部