189 8069 5689

c语言工号升序排序函数,c语言中升序排列是什么意思

C语言编程创建自定义函数sort(),sort函数中实现选择法升序排序,主函数输出排序后的数组元素

#include stdio.h

成都创新互联专注于宁波企业网站建设,成都响应式网站建设公司,商城网站定制开发。宁波网站建设公司,为宁波等地区提供建站服务。全流程定制制作,专业设计,全程项目跟踪,成都创新互联专业和态度为您提供的服务

//选择排序算法,升序

void sort(int *arr,int n)

{

int i,j,k;

int tmp;

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

{

k=i;  //开始一趟选择排序,假定第i个元素是后面n-i+1个未排序的元素中最小的元素

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

{

if(arr[k]  arr[j]) //如果发现比当前最小元素还小的元素,则更新记录最小元素的下标k

k=j;

}

//如果最小元素的下标不是后面n-i+1的未排序序列的第一个元素,则需要交换第i个元素和后面找到的最小元素的位置

if(k != i)

{

tmp=arr[k];

arr[k]=arr[i];

arr[i]=tmp;

}

}

}

int main()

{

int a[10]={ -5,-9,-8,3,9,2,-28,101,-395,0};

int i;

sort(a,10);

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

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

printf("\n");

return 0;

}

//运行结果

F:\c_worka.exe

-395 -28 -9 -8 -5 0 2 3 9 101

C语言中的排序函数是什么

include cstdlib 或 #include stdlib.h

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

参数表

*base: 待排序的元素(数组,下标0起)。

num: 元素的数量。

width: 每个元素的内存空间大小(以字节为单位)。可用sizeof()测得。

int(*)compare: 指向一个比较函数。*elem1 *elem2: 指向待比较的数据。

比较函数的返回值

返回值是int类型,确定elem1与elem2的相对位置。

elem1在elem2右侧返回正数,elem1在elem2左侧返回负数。

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

产生随机数的函数也是rand(),不是rank().

c语言 编写一个排序函数,实现对主函数中数组的升序排序.

#include stdio.h

void mysort(int *p,int n){

int i,j,k;

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

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

if(p[k]p[j])

k=j;

if(k-i)

j=p[k],p[k]=p[i],p[i]=j;

}

}

int main(int argc,char *argv[]){

int a[10]={100,90,80,70,60,50,40,30,20,10,},i;

mysort(a,10);

for(i=0;i10;printf("%d ",a[i++]));

printf("\n");

return 0;

}

C语言字符升序排列~

输入10个字符串,并按字母从小到大排序

#include "stdio.h"

#include "string.h"

void sort(char array[][20],int n);

main(void)

{

char str[10][20];

int i,j,k,n;

printf("input n (n=10):");

scanf("%d",n);

printf("input %d string:",n);

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

gets(str[i]); //输入N个字符串

sort(str,n); //对输入的字符串排序

printf("sort string:\n");

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

puts(str[i]);

return 0;

}

void sort(char array[][20],int n) //定义排序函数

{

char temp[20];

int i,j,k;

for(i=1;in-1;i++)

{

k=i;

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

if(strcmp(array[k],array[j])0)

k=j;

if(k!=i)

{

strcpy(temp,array[i]); //字符串交换顺序

strcpy(array[i],array[k]);

strcpy(array[k],temp);

}

}

}

如上源码所示,其实也不难发现,就一个排序函数便可以解决;解决思想,还是交换法;在这里明白字符串数组str[0],便是第一个主的字符串,跟这个2维str[0][20]是一个意思

用c语言写一个函数。输入10个职工号,按工号大小排序,并输出,名字也随之调整。

void paixu(struct worker wor[10])

{

int i, j, k;

struct worker temp;

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

{

k = i;

for (j = i + 1; j10; j++){

if (wor[j].numwor[k].num)

j = k;

}

if (k != i)

{

temp = wor[i]; wor[i] = wor[k]; wor[k] = temp;

}

}

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

printf("%d,%s\n", wor[i].num, wor[i].name);

}

c语言编程题目求教---输入员工姓名工号进行排序和查找

#include stdio.h

#include stdlib.h

#include string.h

#define EMPCNT 10

struct employee

{

int id;

char name[16];

};

void sort( struct employee *e )

{

int i,j;

struct employee temp;

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

{

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

{

if ( e[j].id  e[i].id )

{

/* swap*/

temp = e[i];

e[i] = e[j];

e[j] = temp;

}

}

}

}

int search( struct employee *e, int id )

{

int low, high, mid;

low = 0; 

high = EMPCNT - 1;

while( low = high )

{

mid = ( low+high ) / 2;

if ( id  e[mid].id )

high = mid - 1;

else if ( id  e[mid].id )

low = mid + 1;

else

return mid;

}

return -1;

}

void main()

{

struct employee e[EMPCNT];

int i, id=0, m=-1;

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

{

printf( "输入第 %d 员工的员工号,姓名:", i+1 );

scanf( "%d %s", e[i].id, e[i].name );

fflush( stdin );

}

sort( e );

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

printf( "%d %s\n", e[i].id, e[i].name );

printf("要查找的员工号:" );

scanf( "%d", id );

fflush( stdin );

m = search( e, id );

if ( m  0 )

printf( "%d 未找到\n", id );

else

printf( "%d %s\n", e[m].id, e[m].name );

getchar();

}


当前文章:c语言工号升序排序函数,c语言中升序排列是什么意思
文章网址:http://cdxtjz.cn/article/phhihe.html

其他资讯