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日

悬赏问题

  • ¥15 运动想象脑电信号数据集.vhdr
  • ¥15 三因素重复测量数据R语句编写,不存在交互作用
  • ¥15 微信会员卡等级和折扣规则
  • ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目