c语言编写一个排序函数 C语言的排序方法
如何用C语言编写一个排序程序
楼上的用的是C++
成都网站设计、做网站的开发,更需要了解用户,从用户角度来建设网站,获得较好的用户体验。创新互联多年互联网经验,见的多,沟通容易、能帮助客户提出的运营建议。作为成都一家网络公司,打造的就是网站建设产品直销的概念。选择创新互联,不只是建站,我们把建站作为产品,不断的更新、完善,让每位来访用户感受到浩方产品的价值服务。
若单纯的用C那就是这样
#includestdio.h
#define
"NO.%d
%d
%d
%d
%d
%3.2f
%3.2f\n",1+i,stu[i].num,stu[i].mat,stu[i].ENG,stu[i].com,stu[i].aver,stu[i].total//宏定义节约时间
struct
student
{
int
num;
int
mat;
int
ENG;
int
com;
float
aver;
float
total;
}stu[10];//定义结构体变量
void
main()
{
int
i;
void
take_turn_print(struct
student
stu1[10])
;
float
sum(int
x,int
y,int
z);//声明求和函数
for(i=0;i10;i++)
scanf("%d%d%d%d",stu[i].num,stu[i].mat,stu[i].ENG,stu[i].com);
for(i=0;i10;i++)
{
stu[i].total=sum(stu[i].mat,stu[i].ENG,stu[i].com);//调用求和函数
stu[i].aver=stu[i].total/3;
}
take_turn_print(stu);//调用排序
打印函数
}
void
take_turn_print(struct
student
stu1[10])
{
void
change(int
*x,int
*y);//声明换位函数
void
change1(float
*x,float
*y);//声明换位函数
int
i,j;
for(j=0;j9;j++)//冒泡排序
为理解简单
就没用别的排序方法
哈哈
{
for(i=0;i9-j;i++)
{
if(stu1[i].averstu1[i+1].aver)
{
change(stu1[i].num,stu1[i+1].num);//
值交换
change(stu1[i].mat,stu1[i+1].mat);//
值交换
change(stu1[i].ENG,stu1[i+1].ENG);//
值交换
change(stu1[i].com,stu1[i+1].com);//
值交换
change1(stu1[i].aver,stu1[i+1].aver);//
值交换
change1(stu1[i].total,stu1[i+1].total);//
值交换
}
}
}
for(i=0;i10;i++)
printf(print);//打印
}
void
change(int
*x,int
*y)
{
int
i;
i=*x;
*x=*y;
*y=i;//利用指针做变量替换
}
void
change1(float
*x,float
*y)
{
float
i;
i=*x;
*x=*y;
*y=i;//利用指针做变量替换
}
float
sum(int
x,int
y,int
z)
{
float
i;
i=(float)(x+y+z);
return(i);
}
前几天也是帮同学做这样的题
一模一样
看来你也是WH大学的
C语言,编写一个函数,函数是用选择排序法将数组排序
#includestdio.h
void px(int a[])
{
int i,temp,j;
for(i=0;i10;i++)
{
for(j=i;j10;j++)
{
if(a[i]=a[j])
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
}
void main()
{
int i,a[10];
for(i=0;i10;i++)
{
printf("成绩:");
scanf("%d",a[i]);
}
px(a);
for(i=0;i10;i++)
{
printf("%d",a[i]);
printf("\n");
}
}
你的错误有点多,px(10)该改成px(a),还有for语句少打了括号,还有for语句里面的i和p的初值都应该为0,而你的是1,编程序的时候要注意代码的格式 排版 不然很难找错的 就像你的for语句少打了括号一样 自己写完了都不容易看出来
还有你那px函数里面的变量声明了太多,没必要 代码看起来要简单 可读性才强
我帮你把没必要的删了 看起来更舒服
c语言怎么用自定义函数排序
for(i=0;iN;i++)
//开始外层for循环,从i=0,每次加1,直到i=4
{
//外层循环体开始
for(j=0;jN-1-i;j++)
//开始外层for循环,从j=0,每次加1直到i等于外层循环的N-j-1
{
//内层循环体开始
if(stu[j].sumstu[j+1].sum)
//条件判断
{
//如果整形数组前面的数比其后的小,执行以下语句
temp=stu[j+1.sum];
//将比较大的数赋值给temp
stu[j+1].sum=stu[j].sum;
//将比较小的数赋值给数组中后面的变量
stu[j].sum=temp;
//将比较大的数赋值给数组中前面的变量
}for(i=0;iN;i++)printf("%d%d",stu[i].学号,stu[i].姓名);}
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语言排序函数
#include stdio.h
#include stdlib.h
#include time.h
void sort(int a[],int n)
{ int i,j,t;
for(i=0; in-1; i++) //共进行n-1轮
{ for(j=0; jn-1-i; j++) //j的范围:0~n-1-i
if(a[j]a[j+1]) //比较相邻两数:a[j]、a[j+1],如不对就交换
{ t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
int main()
{ int n,i,a[10000];
scanf("%d",n);
srand(time(0));
for(i=0; in; i++)
{ a[i]=rand()%100;
printf("%4d",a[i]);
}
printf("\n");
sort(a,n);
for(i=0; in; i++)
printf("%4d",a[i]);
printf("\n");
return 0;
}
C语言编写一个排序函数(对一维数组排序)并在主函数中调用
for(j=i+1;jn;j++)
{
if(a[j+1]a[i])//a[j+1]改成a[j]
{
t=a[i];
a[i]=a[j+1];//a[j+1]改成a[j]
a[j+1]=t;//a[j+1]改成a[j]
}
}
本文名称:c语言编写一个排序函数 C语言的排序方法
本文地址:http://scjbc.cn/article/hgdcgh.html