用c语言编写:下面程序的功能是用冒泡法对10个整数按降序进行排序。 修改该程序,要求将began与end之间的代码用一个函数来实现。
时间: 2023-06-15 16:06:01 浏览: 127
下面是原始程序的代码:
```c
#include<stdio.h>
int main()
{
int a[10],i,j,temp;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<9;i++)
for(j=i+1;j<10;j++)
if(a[i]<a[j])
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
for(i=0;i<10;i++)
printf("%d ",a[i]);
return 0;
}
```
下面是修改后的代码,将排序的部分封装成一个函数:
```c
#include <stdio.h>
void bubble_sort(int *begin, int *end) {
int temp;
for (int *i = begin; i < end - 1; i++) {
for (int *j = i + 1; j < end; j++) {
if (*i < *j) {
temp = *i;
*i = *j;
*j = temp;
}
}
}
}
int main() {
int a[10];
for (int i = 0; i < 10; i++) {
scanf("%d", &a[i]);
}
bubble_sort(a, a + 10);
for (int i = 0; i < 10; i++) {
printf("%d ", a[i]);
}
return 0;
}
```
在修改后的代码中,我们将排序的部分封装成了一个函数 `bubble_sort`。该函数的参数是一个指向数组开头的指针和一个指向数组结尾的指针。这样,我们就可以通过传递参数的方式来排序任意区间的数组了。在 `main` 函数中,我们只需要调用 `bubble_sort(a, a + 10)` 就可以对整个数组进行排序了。
阅读全文