FAstril 2021-07-12 17:00 采纳率: 100%
浏览 204
已结题

为什么else后需要有一个";"(分号)?

#include <iostream>
#include<iomanip>
using namespace std;
int main()
{
    double a,b,c,t;
    cin>>a>>b>>c;
    if(a>b)
    {
        t=a;
        a=b;
        b=t;
    }
    else if(a>c)
    {
        t=a;
        a=c;
        c=t;
    }
    else (b>c);
    {
        t=b;
        b=c;
        c=t;
    }
    cout<<setiosflags(ios::fixed)<<setprecision(2)<<a<<" "<<b<<" "<<c<<endl;
}
  • 写回答

1条回答 默认 最新

  • qfl_sdu 2021-07-12 17:34
    关注

    加上分号就是说下面{}里的东西不是if else语句中的内容了。但是你这个排序的逻辑有问题。
    参考如下:

    
    #include <iostream>
    using namespace std;
    
    int main()
    {
        double a,b,c,max,min;
        cin>>a>>b>>c;
    
        max = a>(b>c?b:c)?a:(b>c?b:c);
        min = a<(b<c?b:c)?a:(b<c?b:c);
        b = a+b+c-max-min; //中间值
        a = min; //最小值
        c = max; //最大值
        
        cout<<setiosflags(ios::fixed)<<setprecision(2)<<a<<" "<<b<<" "<<c<<endl;
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

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