C语言中用三个函数排序 c语言中几种排序方法

编写c语言程序用三个函数求10个同学的平均分及成绩排序

1、写一个主函数,10个成绩放在一个数组里。

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

2、然后写一个求平均值的函数,返回平均值,用循环语句求和在求平均值,小学生应该都会求平均值。

3、再写一个排序算法,先模仿一个冒泡排序算法,最简单的排序算法。

这样不就三个函数了吗?,这个题主要让你初步掌握,数组,循环语句的使用,函数的调用,函数参数的传递,函数值的返回等。学习C就自己多练,多想这样会进步,代码就不写了吧,对你不好。

C语言中要把三个数从大到小排列出来应该怎么编?

初学简单版本代码如下:

#includestdio.h

int main( )

{

int a, b, c;//定义三个数的变量

int t ;//定义作为交换的变量

scanf ( "%d%d%d" , a, b, c ) ; //取值

if ( a b )

{t = a; a = b; b = t ;};//如果a,b,进行交换,反之不动

if ( a c )

{t = a; a = c; c = t ;};//同上

if ( b c )

{t = b; b = c; c = t ;};

printf( "%-5d%-5d%-5d\n" , a, b, c);//输出

}

扩展资料:

C语言中其他多个数排序的方法:

1、冒泡排序法

#include stdio.h

#define SIZE 8

void bubble_sort(int a[], int n);

void bubble_sort(int a[], int n)

{

int i, j, temp;

for (j = 0; j n - 1; j++)

for (i = 0; i n - 1 - j; i++)

{

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

{

temp = a[i];

a[i] = a[i + 1];

a[i + 1] = temp;

} } }

int main()

{

int number[SIZE] = {95, 45, 15, 78, 84, 51, 24, 12};

int i;

bubble_sort(number, SIZE);

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

{

printf("%d\n", number[i]);

}

}

2、选择排序

#includestdio.h

void main()//主函数

{

int a[10];

int i,j,w;

printf("请输入10个数字: \n");

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

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

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

{

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

if(a[i]a[j])//进行比较

//比较后进行交换

{

w=a[i];

a[i]=a[j];

a[j]=w;

}

C语言中从键盘上输入三个数,将之排序后按由大到小的顺序输出

具体操作方法如下:

#includestdio.h

int main(void)

{int a,b,c,t;

printf("请输入三个数");

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

if(ab)

{t=a;a=b;b=t;}

if(bc)

{t=b;b=c;c=t;}

if(ab)

{t=a;a=b,b=t;}

printf("从大到小:%d %d %d",a,b,c);

system("pause");

return 0;}

注意:中间的t=a;a=b;b=t,就是交换a和b的位置,总是把大的换到前面来。

扩展资料:

c语言任意输入5个数,并按从大到小顺序输出的方法如下:

#include stdio.h

#include stdlib.h

int main()

{int a[5];

int i,j,k;

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

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

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

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

{if(a[i]a[j])

{k=a[i]; a[i]=a[j]; a[j]=k;}}}

printf("排序结果是:\n");

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

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

}return 0;

C语言 输入三个数 按由小到大排序 函数调用的方法

#includestdio.h

mian()

{

int f(int *pointer1,int *pointer2,int *pointer3); \\对要进行调用的函数进行声明

int change(int *po1,int *po2);

int a,b,c,*p1,*p2,*p3; \\定义整形三个变量和三个指针变量。

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

p1=a; p2=b; p3=c;

f(*p1,*p2,*p3); \\调用函数f()

printf("排序后的三个数为:%d%d%d\n",a,b,c);

}

int f(int *pointer1,int *pointer2,int *pointer3)

{

if(*pointer1*pointer2) change(*pointer1,*pointer2);

if(*pointer1*pointer3) change(*pointer1,*pointer3);

if(*pointer2*pointer3) change(*pointer2,*pointer3);

}

int change(int *po1,int *po2)

{

int t;

t=*po1;

*po1=*po2;

*po2=t;

}

c语言编程....输入10个数到一维数组中,按升序排序后输出。分别用3个函数 实现数据的输入,排序和输出。

// sort.c by 乐观次品

// 以下常用的排序算法都在这里了,希望能帮到你。

#include stdio.h

#define N 15

#define swap(A,B) {int temp; temp = A; A = B; B = temp;}

#define min(A,B) ((AB)?A:B)

/*int partition(int *a,int l,int r)

{

int v = a[l];

int left = l, right = r+1;

while(1)

{

while(a[++left]v leftr);

while(a[--right]v);

if(leftright) swap(a[left],a[right])

else break;

}

swap(a[l],a[right]);

return right;

}

void quicksort(int *a,int l,int r)

{

int mid;

if(l = r) return;

mid = partition(a,l,r);

quicksort(a,l,mid-1);

quicksort(a,mid+1,r);

}

void merge(int *a,int l,int m,int r)

{

int b[N];

int i =l, j=m+1, k =0;

while(i=m j=r)

{

if(a[i]a[j]) b[k++] = a[i++];

else b[k++] = a[j++];

}

while(i=m) b[k++] = a[i++];

while(j=r) b[k++] = a[j++];

for(k=0,i=l;i=r;i++,k++) a[i] = b[k];

}

void mergesort(int *a,int l,int r)

{

int step=1;

int i;

for(step=1;stepr;step = 2*step)

for(i=l;i=r;i=i+2*step)

merge(a,i,min(i+step-1,r),min(i+2*step-1,r));

}

void mergesort(int *a,int l,int r)

{

int mid = (l+r)/2;

if(l=r) return;

mergesort(a,l,mid);

mergesort(a,mid+1,r);

merge(a,l,mid,r);

}

void shellsort(int *a, int len)

{

int step;

int i,j;

int temp;

for(step = len/2; step=1; step /=2)

{

for(i=step;ilen;i++)

{

j = i;

temp = a[i];

while(j-step=0 a[j-step] temp)

{

a[j] = a[j-step];

j -= step;

}

a[j] = temp;

}

}

}

void insertsort(int *a, int len)

{

int i,j;

int temp;

for(i=1;ilen;i++)

{

j=i;

temp = a[i];

while(j0 a[j-1]temp)

{

a[j] = a[j-1];

j--;

}

a[j]=temp;

}

}

void selectsort(int *a, int l,int r)

{

int i,j,min;

for(i=l;ir;i++)

{

min=i;

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

{

if(a[j]a[min]) min=j;

}

swap(a[i],a[min]);

}

} */

void heapadjust(int *a,int k,int n)

{

int j;

while(2*k = n)

{

j = 2*k;

if(a[j]a[j+1] jn-1) j++;

if(a[k]=a[j]) break;

swap(a[k],a[j]);

k = j;

}

}

void heapsort(int *a,int l,int r)

{

int k,n=r-l+1;

for(k=n/2;k=l;k--)

heapadjust(a,k,n);

while(rl)

{

swap(a[l],a[r]);

r--;

heapadjust(a,l,r);

}

}

void main()

{

int a[N] = {65,70,80,65,50,90,44,65,65,33,22};

int i;

printf("\n before sort :\n");

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

//quicksort(a,0,N-1);

//mergesort(a,0,N-1);

//shellsort(a,N);

//insertsort(a,N);

//selectsort(a,0,N-1);

heapsort(a,0,N-1);

printf("\n after sort :\n");

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

}


网页名称:C语言中用三个函数排序 c语言中几种排序方法
网页地址:http://scyanting.com/article/dooshoc.html