C: Как запросить у пользователя диапазон переменной (которая является минимальным и максимальным значением) и значение приращения для этой переменной - PullRequest
0 голосов
/ 15 ноября 2018

Я новичок в кодировании и начал с C. В вопросе, над которым я работаю, он просит разработать программное обеспечение, которое позволит пользователю изучить, как общая сила будет изменяться в зависимости от глубины воды для типа представленной плотины.(общая сила давления воды на плотину)

Уравнение, данное для использования: F (d) = pg (h / 2) [bd + (2Ʃw (zi) (d-zi))],** [сигма в уравнении имеет индекс i = 1 (нижняя часть сигмы) и заканчивается на n-1 (верхняя часть сигмы)]** [это уравнение было определено с использованием правила трапеции для интеграции]

Where,

F(d) = the total force for the depth d;
p = the density of water (assumed to be 10^3 kg/m^3);
g = acceleration due to gravity (9.8 m/s^2);
b = the width of the channel base;
d = elevation (in m) of the water above the channel bottom;
h = d/n; **(I am also confused on what n would be)**
a = is the distance from the edge of the channel base to the bank of the channel;
b = the width of the channel base;
D = the depth of the channel;
zi = z(i-1)+h for i=1,2,...,n-1;
w(zi) = (2a/D^2)(zi^2)+b

В нем также говорится ... Пользователь предоставит следующие данные:• размеры плотины и канала (значения a, b, D),• диапазон глубины воды d (это минимальное и максимальное значение для глубины),• Значение приращения для глубины d для построения общей силы ft (d) (интеграция используется для нахождения силы ft для каждого значения глубины d).

Итак, мой вопрос направлен на последние две пули выше. Как бы я попросил пользователя ввести диапазон глубины воды d и значение приращения для d?

С проведенным мною исследованием я считаю, что мог бы создать какую-то сортировкуфункция, которая будет запускать несколько проходов в массиве (который содержит минимальные и максимальные значения, введенные пользователем) и иметь наименьшее число, введенное в качестве минимального значения, и наибольшее число, введенное в качестве максимального значения.Я также должен был бы сделать проходы для этого метода для работы.Я могу быть очень неправ в этом, поскольку я новичок в программировании.

Есть ли более простой и менее сложный способ сделать это?Например, смогу ли я как-нибудь просто попросить пользователя «ввести значение для Min», «ввести значение для Max» и «ввести значение приращения» (или что-то в этом духе)?

Anyпредложение поможет, заранее спасибо !!

1 Ответ

0 голосов
/ 15 ноября 2018
#include <stdio.h>

int main(void) {
    int min = -1;
    int max = -1;
    int increment = -1;

    do{
      printf("Enter the POSITIVE min value\n");
      scanf("%d\n", &min);
    }while(min < 0);

    do{
      printf("Enter the POSITIVE max value\n");
      scanf("%d\n", &max);
    }while(max < 0);

    do{
      printf("Enter the POSITIVE increment value\n");
      scanf("%d\n", &increment);
    }while(increment < 0);

    printf("%d %d %d\n", min, max, increment);
    return 0;
}

Вот пример способа получения пользовательского ввода, где вы разрешаете только положительный ввод. Если вам нужно разрешить отрицательный ввод, есть другие способы отловить ошибки ввода, на которые вы должны обратить внимание. Это не обрабатывает, если пользователь вводит глупые вещи, такие как ASDF для минимальной глубины, если это нормально, это должно быть хорошо. если нет, то вам нужно прочитать все stdin и разобрать его, что на данном этапе кажется более трудным, чем оно того стоит :) GL с вашей домашней работой по физике

...