输入 n 个整数排序并输出。要求用冒泡法排序,将排序单独写成一个函数,n 个整数 在主函数中输入,排序结果在主函数中输出。编写程序,用指针实现上述功能要求。
时间: 2024-02-27 17:57:31 浏览: 80
C语言程序设计-编写函数用冒泡排序法对数组中的数据进行从小到大的排序;.c
5星 · 资源好评率100%
好的,以下是代码实现:
```c
#include <stdio.h>
void bubble_sort(int *p, int n); // 冒泡排序函数声明
int main()
{
int n;
printf("请输入整数个数:");
scanf("%d", &n);
int arr[n];
printf("请输入%d个整数:", n);
for (int i = 0; i < n; i++)
{
scanf("%d", &arr[i]);
}
bubble_sort(arr, n); // 调用冒泡排序函数
printf("排序后的结果为:");
for (int i = 0; i < n; i++)
{
printf("%d ", arr[i]);
}
return 0;
}
void bubble_sort(int *p, int n)
{
int temp;
for (int i = 0; i < n - 1; i++)
{
for (int j = 0; j < n - 1 - i; j++)
{
if (*(p+j) > *(p+j+1))
{
temp = *(p+j);
*(p+j) = *(p+j+1);
*(p+j+1) = temp;
}
}
}
}
```
代码思路:
1. 在主函数中先输入整数个数 n,接着声明一个长度为 n 的整型数组 arr。
2. 接着使用 for 循环输入 n 个整数,并存入数组中。
3. 调用冒泡排序函数 bubble_sort,将数组 arr 和数组长度 n 作为参数传递给函数。
4. 冒泡排序函数中使用两个嵌套的 for 循环,进行冒泡排序。
5. 最后在主函数中输出排序后的结果。
注意事项:
1. 冒泡排序函数中使用指针访问数组元素,可以避免数组名作为参数传递时的数组长度丢失问题。
2. 在主函数中定义数组时,数组长度必须是一个常量,而不能是变量,因此需要使用变长数组(VLA)的方式来定义数组 arr。
阅读全文