请问这个哪里有问题,要怎么改🙏🏻

对任意多个实数按降序排序。

要求:

(1)在main.c文件中写main函数,在main函数中输入多个实数,并在main函数中输出最终的排序结果。

(2)在sort.c文件中写sort函数,该函数实现对多个数进行排序,其中两数交换的功能由swap.c中的swap函数实现,也即调用swap函数实现两数的交换。

(3)在swap.c函数中实现两个实数的交换。

img

img

img

修改的话就算了,我的建议是重写。
题目里要求main函数中输入多个实数,那应该声明个float或double型数组,你声明成int型就算了,还是用%s读入,%s是读取字符串的格式。还有自定义函数不一定都得硬写个返回值的,像这种排序函数,交换函数就没必要返回值了。
参考代码如下:

#include <stdio.h>
void swap(float* a, float* b)
{
    int t = *b;
    *b = *a;
    *a = t;
}
void sort(float a[],int n)
{//降序排序,n为元素个数
    for (int i = 1; i < n; i++)
    {//冒泡排序法
        for (int j = 0; j < n - i; j++)
        {
            if (a[j] < a[j + 1])
            {
                swap(&a[j], &a[j + 1]);//交换顺序
            }
        }
    }
}
int main()
{
    float a[5];
    int i;
    for (int i = 0; i < 5; i++)
    {
        scanf("%f", &a[i]);
    }
    sort(a,5);
    for (int i = 0; i < 5; i++)
    {
        printf("%f ", a[i]);
    }
    return 0;
}