Supersolo24 2022-11-06 20:19 采纳率: 80%
浏览 30
已结题

浮点数绝对值比较大小并排序

输入十个浮点数比较绝对值大小,进行冒泡排序,由大到小输出,不知道哪里有问题。

#include<stdio.h>
#include<math.h>
int main(){
    int i,j;
    float s[10]={0.0},k;
    for(i=0;i<10;i++)
        scanf("%f",&s[i]);
    for(i=0;i<9;i++)
    for(j=0;j<9-i;j++){
        if(fabs(s[j])<fabs(s[j+1]))
            k=s[j];
        s[j]=s[j+1];
        s[j+1]=k;
    }
    for(i=0;i<9;i++) printf("%.2f,",s[i]);
    printf("%.2f.",s[9]);
    return 0;
}
输入样例
34.5 -234 90.3 23.5 24.8 1234 879.7 23.98 1287.73 -2340.8
输出
-2340.80,1287.73,23.98,24.80,24.80,24.80,23.50,34.50,34.50,34.50.
出现两个24.80,而且比较也出了问题
  • 写回答

1条回答 默认 最新

  • 伍六七0804 2022-11-07 10:27
    关注
    
    #include <stdio.h>
    #include <math.h>
    int main()
    {
        int i, j;
        float s[10] = {0.0}, k;
        for (i = 0; i < 10; i++)
            scanf("%f", &s[i]);
        for (i = 0; i < 9; i++)
            for (j = 0; j < 9 - i; j++)
            {
                if (fabs(s[j]) < fabs(s[j + 1]))
                {
                    k = s[j];
                    s[j] = s[j + 1];
                    s[j + 1] = k;
                }
            }
        for (i = 0; i < 9; i++)
            printf("%.2f,", s[i]);
        printf("%.2f.", s[9]);
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月15日
  • 已采纳回答 11月7日
  • 创建了问题 11月6日

悬赏问题

  • ¥15 PADS Logic 原理图
  • ¥15 PADS Logic 图标
  • ¥15 电脑和power bi环境都是英文如何将日期层次结构转换成英文
  • ¥20 气象站点数据求取中~
  • ¥15 如何获取APP内弹出的网址链接
  • ¥15 wifi 图标不见了 不知道怎么办 上不了网 变成小地球了
  • ¥50 STM32单片机传感器读取错误
  • ¥15 (关键词-阻抗匹配,HFSS,RFID标签天线)
  • ¥15 机器人轨迹规划相关问题
  • ¥15 word样式右侧翻页键消失