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://pwwzsj.com/article/dooshoc.html