aimi135 2021-10-19 20:26 采纳率: 83.3%
浏览 38
已结题

用冒泡算法排序时出错

我定义了三个浮点数,并进行排序,但得不到结果

#include <stdio.h>
void main()
{
    int i,j,temp;
    float a,b,c; 
    float num[3]={a,b,c,};
    scanf("%f %f %f",&a,&b,&c);
    for(i = 0;i < 3;i++)
    {
        for(j = 0;j<3;j++)
        {
            if(num[j]>num[j+1])
            {
                temp = num[j];
                num[j] = num[j+1];
                num[j+1] = temp;
            }
        }
    }
    printf("%.2f %.2f %,2f\n",num[0],num[1],num[2]);
}

  • 写回答

1条回答 默认 最新

  • GrantHe2761 2021-10-19 20:32
    关注

    错误一:用abc初始化num数组时abc需要先初始化。
    错误二:printf三个%.2f最后一个写成了%,2f
    错误三:冒泡排序不是这样写的
    c++的3个浮点数的冒泡排序如下:

    #include <iostream>
    #include <iomanip>
    using namespace std;
     
     
    void BubbleSort(double a[], int len)
    {
        int i, j;
        double temp;
        for (j = 0; j < len - 1; j++) //对于len个数的数组只需要len-1趟遍历交换
        {
            for (i = 0; i < len - 1 - j; i++){
                  if (a[i] > a[i + 1])
                  {
                      temp = a[i];
                      a[i] = a[i + 1];
                      a[i + 1] = temp;
                  }
            }
        }
    }
     
    int main()
    {
        double data[3]; //定义双精度数组
        for (int i=0;i<3;++i){
            cin>>data[i];//输入数据
        }
        BubbleSort(data,3);
        for(int i=0;i<3;++i){
            cout << setiosflags(ios::fixed);
            cout << setprecision(2);
            cout << data[i] << " ";
        }
        cout<<endl;
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 12月28日
  • 已采纳回答 12月20日
  • 创建了问题 10月19日

悬赏问题

  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀
  • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100
  • ¥15 关于#hadoop#的问题
  • ¥15 (标签-Python|关键词-socket)
  • ¥15 keil里为什么main.c定义的函数在it.c调用不了