注册 登录
编程论坛 C语言论坛

主函数内先调用rannum函数产生20个随机数存放到数组a,然后调用函数sort将a中的元素排序,并分别输出排序前后数组a的元素值.小萌新求大佬们帮帮忙!

小白很温柔 发布于 2021-11-27 16:38, 1375 次点击
题目是这样的:
在main函数之后编写一个能产生三位数的随机数的函数 int rannum(),再编写一个能用冒泡排序法将数组元素从小到大排序的函数void sort(int x[], int n), 在主函数内先调用rannum函数产生20个随机数存放到数组a中,然后调用函数sort将a中的元素排序,并分别输出排序前后数组a的元素值。

#include <stdio.h>
#include <stdlib.h>
void main()
{
    int rannum(),t;
    void sort(int x[], int n);
    int a[20];
    for (t = 0; t < 20; t++)
        a[t] = rannum();
    sort(a, 20);
    for (t=0;t <20;t++)
        printf("%d\n",a[t]);
    return;
}
int rannum()
{
    int b;
    b = rand() % 899 + 100;
    printf("%5d",b);
    return 0;
}
void sort(int x[], int n)
{
    int m, i, j;
    for (i = 0; i < n - 1; i++)
        for (j = 0; j < n - 1 - i; j++)
            if (x[j] > x[j + 1])
            {
                m = x[j];
                x[j] = x[j + 1];
                x[j + 1] = m;
            }
}
现在一运行就成这样了:  141  587  141  529  390  541  790  690  991  291  411  376  906  745  172  591  398  355  432  1420
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

[此贴子已经被作者于2021-11-27 16:43编辑过]

2 回复
#2
吹水佬2021-11-27 18:15
rannum()
return b;
#3
小白很温柔2021-11-27 19:01
回复 2楼 吹水佬
谢谢大佬!!!
1