#include <stdlib.h> void sort(int a[],int n) { /**********Program**********/ int i,j,tem; for(i=0;i<n;i++) { for(j=0;j<n-1;j++) { if(a[j]<a[j+1]) tem = a[j]; a[j] = a[j+1]; a[j+1] = tem; } } /********** End **********/ } int main() { int a[13],i; for(i=0;i<13;i++) a[i]=random(20)-5; for(i=0;i<13;i++) printf("%3d",a[i]); printf("\n-------------------\n"); sort(a,13); for(i=0;i<13;i++) printf("%3d",a[i]); }
时间: 2023-07-23 08:04:40 浏览: 63
这是一个使用冒泡排序算法对数组进行降序排列的 C 语言程序。具体实现如下:
1. 定义一个 sort 函数,接受一个整型数组 a 和数组长度 n 作为参数。
2. 在 sort 函数中,使用两个 for 循环,外层循环控制比较次数,内层循环控制比较和交换操作。
3. 比较相邻的两个元素,如果前面的元素比后面的元素小,就交换它们的位置。
4. 在 main 函数中,先生成一个长度为 13 的整型数组 a,数组元素在 [-5, 15] 范围内随机生成。
5. 依次输出原始数组 a 和排序后的数组。
完整代码如下:
```c
#include <stdio.h>
#include <stdlib.h>
void sort(int a[], int n) {
int i, j, tem;
for (i = 0; i < n; i++) {
for (j = 0; j < n - 1; j++) {
if (a[j] < a[j + 1]) { // 如果前一个元素比后一个元素小,则交换它们的位置
tem = a[j];
a[j] = a[j + 1];
a[j + 1] = tem;
}
}
}
}
int main() {
int a[13], i;
for (i = 0; i < 13; i++)
a[i] = random(20) - 5; // 生成 [-5, 15] 范围内的随机数
for (i = 0; i < 13; i++)
printf("%3d", a[i]);
printf("\n-------------------\n");
sort(a, 13);
for (i = 0; i < 13; i++)
printf("%3d", a[i]);
return 0;
}
```
阅读全文