c程的某问题

来源:百度知道 编辑:UC知道 时间:2024/09/23 07:11:25
给定主函数,编写三个函数input()、sort()、output(),分别实现数组元素的输入,数组元素的排序(升序)和数组元素的输出。
#include "stdio.h"
main( )
{ void input(int *a,int n);
void sort(int *a,int n);
void output(int *a,int n);
int a[10];
input(a,10);
sort(a,10);
output(a,10);
}
实现升序的那个函数不知道怎么编,好像编出来是没返回值还是怎么回事,请高手帮忙编一下……

假如用冒泡排序法:
void sort(int *a,int n)//a是数组的首元素地址(也就是数组名),n是数组的元素个数
{
int i,j,temp;
for(i=0;i<n;i++)
for(j=0;j<n-i-1;j++)
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
因为函数里通过数组的指针来对数组元素进行操作,所以不需要返回值

建议你void sort(int *a,int n)弄成有返回值的,或者用引用的方式来做形参。算法写个简单的冒泡算法就行

你以地址方式引用数组,运算中不要用其它的数组参数,直接使用地值偏移编写算法,过后的数据结果己保存在数组中,直接输出数据就可以了。