c语言编写一个函数sort按照学生编号由小到大的顺序排列二维数组,两门课程的成?

作者&投稿:逄曼 (若有异议请与网页底部的电邮联系)
求C语言编程编写函数sort:对数组a中的数进行从小到大排序~

我介绍两种排序方法吧
1 选择排序
void sort(int a[ ],int length) /* 这个数组数据类型你可以自己更改 float 也可以 不过其他的也要相应的改 比如%d改为%f等,length 为数组长度*/
{int *p,temp,i=0,*min;
while(i<length)
{ min=&a[i];

for(p=a+i;p<a+length;p++)
{if(*p<*min)
{temp=*min;
*min=*p;
*p=temp;
}
}
i++;
}
}
选择排序法就是把数组的最小的元素找的然后放到数组的最前面 就是第一小的放到最前面 然后继续从后面找在最小的放到剩下元素的最前面 一直循环直到最后一个
2 冒泡排序
void sort(int a[],int length)
{int *p=a,*q=a+1,temp;
for(p=a;p<a+length-1;p++)
for(q=p+1;q<a+length;q++)
if(*p>*q)
{temp=*p;
*p=*q;
*q=temp;
}
}
冒泡排序是把上下两个元素比较 然后小的就换到上面去 第一次是最小的 然后是第二小的 依次类推 直到最后
很形象 冒泡 呵呵
这是我写的一个测试程序 你运行一下吧
#include
#include
void sort(int a[],int length);
main()
{int a[3]={3,2,1},i;
clrscr();/*清屏函数 要打开头文件conio.h*/
for(i=0;i<3;i++)
printf("%d ",a[i]);
printf("
");
sort(a,3);
for(i=0;i<3;i++)
printf("%d ",a[i]);
printf("
");
}

/*把sort函数定义写在这*/

在上面加一任意一个sort函数 不能加两个啊 c不支持函数重载的

C语言版,C99标准
==========
#include
#include
#include
int icomp(const void* pa, const void* pb){
char *a=(char*)*((char**)pa), *b=(char*)*((char**)pb);
int c;
while(*a || *b){
if(c=tolower(*a)-tolower(*b)) return c;
a++; b++;
}
return (c=tolower(*a)-tolower(*b))?c:0;
}
int main(int argc,char *agv[] )
{
char *str[]={"My", "At", "so", "you", "You", "how"};//等同与str[0]...[1]等等
int i,len=sizeof(str)/sizeof(char*);
qsort(str,len,sizeof(char*),icomp);
for(i=0;i<len;i++)
printf("%d. %s
",i, str[i]);
return 0;
}
=============
0. At
1. how
2. My
3. so
4. You
5. you



C++11版,也没能化简
==========
#include
#include
#include
using namespace std;
int main(int argc,char *agv[] )
{
char *str[]={
"My","At","so","you","You","how"
};
int i,len=sizeof(str)/sizeof(char*);
sort(str,str+len,
[&](string a,string b)->int{
string la(a),lb(b);
transform(a.begin(),a.end(),la.begin(),::tolower);
transform(b.begin(),b.end(),lb.begin(),::tolower);
int r=la.compare(lb);
return r?r<0:a.compare(b)<0;
}
);
for(i=0;i<len;i++)
printf("%d. %s
",i, str[i]);
return 0;
}

数组的4种声明方式:
1.先声明再初始化
例如:
//1.声明
int[] nums;
//初始化
nums = new int[5];
2.声明并初始化
例如:
//2.声明、初始化
int[] nums = new int[10];
3.创建数组同时赋值
例如:
//3.创建数组同时赋值
String[] names=new String[]{"大名","小米","夏雨荷"};
int[] ages=new int[]{21,22,21,56,13};
for (int i = 0;i < names.length;i++){
System.out.prinrln(names[i]);
}
for (int i = 0;i < ages.length;i++){
System.out.prinrln(ages[i]);
}
4.创建同时赋值,简写,不能写成两条语句
例如:
//4.创建同时赋值,简写,不能写成两条语句
String[] cities = {"上海","北京"};

扩展资料:
数组(Array)是有序的元素序列。若将有限个类型相同的变量的集合命名,那么这个名称为数组名。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。用于区分数组的各个元素的数字编号称为下标。数组是在程序设计中,为了处理方便, 把具有相同类型的若干元素按有序的形式组织起来的一种形式。 这些有序排列的同类数据元素的集合称为数组。
数组是用于储存多个相同类型数据的集合。
在C语言中, 数组属于构造数据类型。一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。因此按数组元素的类型不同,数组又可分为数值数组、字符数组、指针数组、结构数组等各种类别。



3. 写一个函数,将一个3 X 3 的整型矩阵转置。 4.编写一个函数sort,使 20 个整数由小到大的顺序排列。在主函数中输出排好序的数。本程序编写函数部分要求要用指针来解决。 5. 在主函数中输入 10 个等长的字符串。用另一个函授数对它们排序,然后输出这 10

c语言 用一个函数实现用冒泡法对十个整数升序和降序排列 麻烦写全些
答:include <stdio.h>void sort1(int a[],int n){int i,j,t; for(i=0;i<n-1;i++) for(j=0;j<n-1-i;j++) if(a[j]>a[j+1]) {t=a[j];a[j]=a[j+1];a[j+1]=t;}}void sort2(int a[],int n){int i,j,t; for(i=0;i<n-1;i++) for(j=0...

c语言 ,编写一个函数input(),sort(),实现数组的输入,排序。
答:input()里面的输入的数据存放在数组中,只要在调用sort()的时候使用数组作为参数就可以!例如下题://从键盘输入n(1<n<=10)个数据,并对这n个数据从小到大排序 include<stdio.h> void main(){ int i,n,a[10];void input(int a[],int n);void sort(int a[],int n);printf("请输入...

c语言 编写一个排序函数,实现对主函数中数组的升序排序.
答:include <stdio.h>void mysort(int *p,int n){int i,j,k;for(i=0;i<n;i++){for(k=i,j=k+1;j<n;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;...

用C语言编个程序:写一函数,用“选择法”对8个整数进行排序(降序...
答:include "stdio.h"void select_sort(int a[],int n){ int i,j,k,temp;for(i=0;i<n-1;i++){ k=i;for(j=i+1;j<n;j++){ if(a[j]>a[k])//将这里改成a[j]<a[k]就是按升序排序 { k=j;temp=a[i];a[i]=a[k];a[k]=temp;} } } }//定义选择排序函数 int ...

C语言:写一个函数,可对任意个整数进行起泡排序(升序,降序可选)。_百度...
答:排序没有问题,但是你在打印的时候出错了 for(i=0;i<m;i++)printf("%d",&a[i]); //这里打印的是数组元素a[i]的地址,应改为printf("%d" , a[i]);printf("\n");满意请采纳!!!

【急求】c语言编写函数void sort(int a[]),其功能是将数组a[n]按照从...
答:小朋友先自己写写看。void swap( int *a ,int *b){ int temp;temp = *a;a = *b;b =temp;} void sort(int a[]){ for (int i=0; i<N; i++) //N即为你的数组长度-1;{ for (int m =N; m>i; m--){ if (a[m] > a[m-1]){ swap(&a[m],&a[m-1])...

c语言运用sort 排序函数,需要的头文件是什么?
答:sort不属于C语言的标准函数,所以也没有相应的头文件,但是可以自定义。sort 函数为将整型数组从小到大排序。voidsort(int*a,intl)//a为数组地址,l为数组长度。{ inti,j;intv;//排序主体 for(i=0;i<l-1;i++)for(j=i+1;j<l;j++){ if(a[i]>a[j])//如前面的比后面的大,则交换...

C语言编程题,编一个排序函数啊!
答:用了一个冒泡法,从小到大排序,请参考 include <stdio.h> void Sort(int token[], int count); /*在此处做函数声明最好*/ void main(){ int i,count,token[100];printf("请输入要排序数字的个数:\n");scanf("%d",&count); /*从键盘输入要处理的信息*/ printf("请输入要排序...

c语言 编写函数sort(int*x,int n)函数
答:int n){int i,j,t;for(i=0;i<n-1;i++)for(j=0;j<n-i-1;j++)if(abs(*(x+j))>abs(*(x+j+1))){t=*(x+j);*(x+j)=*(x+j+1);*(x+j+1)=t;}}int main(){int n,i;scanf("%d",&n);int x[80];for(i=0;i<n;i++)scanf("%d",&x[i]);sort(...

求解C语言程序设计题:编写函数用选择排序法对数组中的数据进行从小到...
答:void sort(int a[], int n){ int i, j, t;for(i = 0; i < n - 1; i++)for(j = i + 1; j < n; j++)if(a[i] > a[j]){ t = a[i]; a[i] = a[j]; a[j] = t;} }