Как мне решить эту проблему среднего числа? - PullRequest
1 голос
/ 26 марта 2020

Напишите программу, в которой пользователь вводит 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;
}

Я все еще пытаюсь освоить циклы if, и я просто запутался с этой проблемой. У вас есть предложения?

Ответы [ 3 ]

4 голосов
/ 26 марта 2020
#include<stdio.h>
void main()
{
 float a,b,c;
 scanf("%f%f%f",&a,&b,&c);
 if(a<b&&b<c)
 {
  pritnf("The middle number is b=%f\n",b);
 }
 else if(b<a&&a<c)
 {
  printf("The middle number is a=%f\n",a);
 }
 else
 {
  printf("The middle number is c=%f",c);
 }
}
2 голосов
/ 26 марта 2020

, например, если a - средний, то b - средний, тогда c - средний. Проверьте, если это hepls!

#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;

}

0 голосов
/ 26 марта 2020

Если вы можете использовать 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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...