2.下列给定程序中,函数sort ()的功能是:用冒泡排序法对数组中n个整数进行升序排序。 请勿改动主函数main

2.下列给定程序中,函数sort ()的功能是:用冒泡排序法对数组中n个整数进行升序排序。
请勿改动主函数main中的任何内容,仅在函数sort的花括号中填入所编写的若干语句。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include <stdio.h>
void sort (int a[],int n)
{

}
main()
{int i,n,a[100];
scanf(“%d”,&n);
for (i=0;i<n;i++)
scanf (“%d”,&a[i]);
sort (a,n);
for (i=0;i<n;i++)
printf (“%d “,a[i]);
printf("\n");
}

第1个回答  推荐于2017-12-15
其实这就是冒泡排序法的函数实现,跟普通的冒泡法没什么区别的
在函数中,给的参数是数组名和数组长度,这也是冒泡法最主要的两个数据了,给你具体实现一下:
void sort (int a[],int n)
{
int i,j,temp;
for(i=0;i<n-1;i++) //趟数
for(j=0;j<n;j++) //次数
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
对N个数的排序需要N-1趟,每趟需要比较N次,这样的程序执行效率高。
楼上的执行了99趟,每趟99次,没有必要这么麻烦的,呵呵,他好像没注意函数的参数还有一个数组的长度
希望可以帮助你o(∩_∩)o本回答被提问者和网友采纳
第2个回答  2012-06-14
int i,j,t;
for(j=0;j<99;j++)
for(i=0;i<99-j;i++)

if(a[i]>a[i+1])
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
相似回答