C - Добавление расстояния от пользовательского ввода используя struct - PullRequest
0 голосов
/ 25 апреля 2020

Я очень плохо знаком с C и борюсь с этим кодом. Мне нужно получить информацию о футах и ​​дюймах двух спортсменов из пользовательского ввода, используя структуру, а затем подсчитать сумму в дюймах каждого спортсмена, чтобы определить победителя. У меня проблема в том, что возвращаемое значение не имеет никакого смысла. Я предполагаю, что это как-то связано с получением адреса значения вместо фактического значения, но после изменения некоторых вещей я просто получаю ошибки или сбой программы. Любая помощь приветствуется.

#include <stdio.h>
#include <stdlib.h>

//Distance Structure
struct Distance
{
    int feet;
    float inches;
};

int main() {

    //Initialize athelete structures
    struct Distance athlete1;
    struct Distance athlete2;

    //Get values for athlete 1
    printf("Enter the distance for athlete 1\n");
    printf("Feet: ");
    scanf("%d", &athlete1.feet);
    printf("Inches: ");
    scanf("%d", &athlete1.inches);

    //Get values for athlete 2
    printf("Enter the distance for athlete 2\n");
    printf("Feet: ");
    scanf("%d", &athlete2.feet);
    printf("Inches: ");
    scanf("%d", &athlete2.inches);

    //Convert values to inches
    float total1 = calculateInches(athlete1.feet, athlete1.inches);
    float total2 = calculateInches(athlete2.feet, athlete2.inches);

    //Print distance in inches
    printf("\nAthlete 1 has a distance of %d inches\n", total1);
    printf("Athlete 2 has a distance of %d inches\n\n", total2);

    //Print the winner
    if(total1 > total2){
        printf("Athlete 1 wins!");
    }
    else if(total1 < total2){
        printf("Athlete 2 wins!");
    }
    else{
        printf("Tie!");
    }
    return 0;
}

//Calculate Inches
int calculateInches(feet, inches){
    float total;
    total = (feet*12) + inches;
    return total;
}

1 Ответ

1 голос
/ 25 апреля 2020

Есть несколько проблем с вашим кодом:

  • Спецификатор формата, который будет использоваться всякий раз, когда вы используете float: %f вместо того, чтобы использовать %d

  • Попробуйте объявить метод calculateInches(). Запишите его выше метода main() или попробуйте использовать прототип функции. взгляните на эту ссылку

  • Упомяните правильные типы аргументов функции float calculateInches(float feet, int inches). Смежный вопрос

Рабочий пример: https://ideone.com/jsMZgv

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...