C++ 如何解决这个中间数问题?

C++ 如何解决这个中间数问题?,c++,c,loops,if-statement,C++,C,Loops,If Statement,编写一个程序,用户输入3个浮点数,程序检查哪个是中等大小的数字。示例:a=1.5、b=7.8和c=3.0,输出应为c。 这是我曾经尝试过的,并且在一个案例中奏效,但是我仍然在做太多的意大利面代码,我仍然在学习如何高效地编写代码。 我的代码: #include <stdio.h> int main(){ float a, b, c; scanf("%f %f %f", &a, &b, &c); if(a < b &&a

编写一个程序,用户输入3个浮点数,程序检查哪个是中等大小的数字。示例:
a=1.5
b=7.8
c=3.0
,输出应为
c
。 这是我曾经尝试过的,并且在一个案例中奏效,但是我仍然在做太多的意大利面代码,我仍然在学习如何高效地编写代码。 我的代码:

#include <stdio.h>

int main(){
    float a, b, c;

    scanf("%f %f %f", &a, &b, &c);

    if(a < b && c < a)
        printf("%.1f", a);
    else if(b < a && b > c)
        printf("%.1f", b);
    else if(c > a && c < b)
        printf("%.1f", c);
    else
    {
        printf("not good"); //I wrote this part to check if the code is good
    }




    return 0;
}
#包括
int main(){
浮子a、b、c;
scanf(“%f%f%f”、&a、&b和&c);
if(ac)
printf(“%.1f”,b);
否则如果(c>a&&c
我仍在尝试掌握
if
循环的诀窍,我只是对这个问题感到困惑。你有什么建议吗?

如果你能使用C++:

#include <stdio.h>
#include <vector>
#include <algorithm>

using namespace std;

int main(){
    float a, b, c;

    scanf("%f %f %f", &a, &b, &c);

    // Put them in a vector. Could use array, but vector more flexible
    vector<float> vals = {a,b,c};

    // Sort in numerical order
    sort (vals.begin(),vals.end());

    // Display the middle one
    printf("%.1f", vals[1]);

    return 0;
}
#包括
#包括
#包括
使用名称空间std;
int main(){
浮子a、b、c;
scanf(“%f%f%f”、&a、&b和&c);
//将它们放在向量中。可以使用数组,但向量更灵活
向量vals={a,b,c};
//按数字顺序排序
排序(vals.begin()、vals.end());
//显示中间的一个
printf(“%.1f”,VAL[1]);
返回0;
}

想象一下,如果a是中等,那么b是中等,那么c是中等。看看那是不是真的

#include <stdio.h>

int main(){

float a, b, c;

scanf("%f %f %f", &a, &b, &c);

if((a > b && a < c) || (a > c && a < b) ) 
    printf("%.1f", a);
else if((b > a && b < c) || (b > c && b < a))
    printf("%.1f", b);
else if((c > a && c < b) || (c > b && c < a))
    printf("%.1f", c);
else
{
    printf("not good"); //I wrote this part to check if the code is good
}




return 0;
#包括
int main(){
浮子a、b、c;
scanf(“%f%f%f”、&a、&b和&c);
如果((a>b&&ac&&aa&bc&ba&cb&c

}

请选择一种语言。也许你的代码是一种(C)代码和有效的C++代码的(罕见的)情况,但最简单的修改可以改变更多的主题:<代码>如果< /COD>和循环是两种不同的东西。具体是什么让你困惑?如果你有工作代码并且想得到审查,那么是最好的询问地点,因为询问“任何建议”都有被关闭的危险,因为太广泛/基于意见这里有一个提示:
a
有两种方法作为中间数字。cstd::array?),那么你就不需要
a
b
c
,但是你可以直接将用户输入存储在向量中,就像我说的那样,向量更灵活,因为我们可以在运行时确定中间位置的项目数量。数字的输入不是问题的关键,所以我觉得最好不要通过改变它来分散注意力。不需要的灵活性只会打开错误的大门。代码中只能有3个元素。即使你改变代码使用4,那么在编译时仍然知道元素的数量,只是说…<代码> SCANF是C++?谢谢,它帮助了,但是我还是C++的新手,那么,“是”意味着什么?好像我从来没用过这个。
|
的意思是“或”。但是这个解决方案过于复杂。那么,如果
a==b==c
,会发生什么呢?