Member 14770192 Ответов: 4

Нужна помощь в исправлении кода на С.


В вопросе говорится::

Для остановки транспортного средства весом 3000 фунтов, движущегося по дороге со скоростью 100 футов/с, требуется усилие, равное его массе, умноженной на ускорение ( F = ma).
Ускорение задается формулой
a= (v_o^2-v_i^2)/2d

Где vi = 100 футов/сек.
vo = 0 футов/сек.
Напишите программу, которая рассчитает тормозную силу, необходимую для остановки автомобиля на расстояниях 10, 20, 30, 40, 50, ..., 1000 ft. Отображение значения расстояния и соответствующей тормозящей силы в табличной форме. Единицами силы являются Ньютоны (N). Ваше решение должно включать определенную пользователем функцию, которая возвращает силу и принимает в качестве входных данных начальную и конечную скорость и расстояние.
двойное усилие(двойной velocityInitial, двойной velocityFinal, двойное расстояние, двойной массы);

Не знаю, как исправить ошибки, которые я получил, которые являются:

26: "масса" используется неинициализированной в этой функции
26: "ускорение" используется неинициализированным в этой функции
30: 'расстояние' используется неинициализированная в этой функции

Что я уже пробовал:

Мой код таков:

#включить <stdio.h>
#include <stdlib.h>
#включить <math.h>

двойное усилие(двойной velocityInitial, двойной velocityFinal, двойное расстояние, двойной массы);

тап_п()
{

двойная форсформула;
int расстояние, масса, ускорение;

forceFormula = масса * ускорение;

printf("\nDistance:\t\tForce in Newtons:\n"
"------------------------------------------\северный");
printf("%d\t\t \ t%.2lf\n", расстояние, forceFormula);
printf("------------------------------------------\Н");



возвращает 0;
}


двойное усилие(двойной velocityInitial, двойной velocityFinal, двойное расстояние, двойной массы)
{
velocityInitial = 100;
velocityFinal = 0;
масса = 3000;

двойное ускорение, форсформула;



для( расстояние = 10; расстояние <= 1000; расстояние += 10)
{

ускорение = ((velocityFinal * velocityFinal) - (velocityInitial * velocityInitial))/ 2 * расстояние;

forceFormula = масса * ускорение;
}

вернуться forceFormula;

}

4 Ответов

Рейтинг:
1

OriginalGriff

Это ваш четвертый вопрос, и третий сегодня: все с той же проблемой.

И это просто: вы не думаете, вы пытаетесь заставить других делать это за вас. И это плохая идея, потому что вы не учитесь, глядя на работу других - вы учитесь, делая что-то для себя.

Поэтому я не буду говорить вам, какой код вам нужно исправить: вместо этого я укажу вам на постоянное решение. Найдите в Google название вашей системы C (вероятно, IDE) и слово "отладчик" и начните читать, как его использовать. Отладчик позволит вам следить за тем, что делает ваш код во время его выполнения, глядя на содержимое переменной памяти и где на самом деле происходит управление потоком - и почему. Это лучший инструмент в вашей коробке, так что привыкайте использовать его - это то, где вы собираетесь потратить много времени на разработку.

Так что отправляйтесь в Google и начните использовать отладчик.


Patrice T

Похоже, комментарий в S2 тоже для вас.

Рейтинг:
1

Patrice T

Цитата:
Нужна помощь в исправлении кода на С.

- Нет ! Там нет ничего, чтобы исправить, потому что вы не заявили о какой-либо проблеме.
Вы, очевидно, ничего не узнали из 3 предыдущих вопросов.

Когда вы просите о помощи, вы должны сказать в чем ваша проблема, предоставление полных сообщений об ошибках-это минимум.
Если вы внимательно прочтете сообщения об ошибках, вы увидите, что компилятор не просто говорит: "У вас ошибка ! na nana na ...", компилятор пытается рассказать вам о типе ошибки как можно лучше, и это также дает вам позицию. Это должно сузить поиск решения.

Вам нужно научиться использовать эти сообщения об ошибках, искать в документации подробную информацию об ошибке.

Я думаю вам придется изучить отладчик и очень скоро. Невероятно полезно понять, что является неожиданным в вашем запущенном коде.

[Обновление]
Цитата:
Я не уверен, что именно в этом вопросе Вас разозлило, ребята

Вы не слушаете сделанные комментарии.
Цитата:
Наверное, я не единственный, кто не любит Си так сильно.

Вот почему не у всех есть компилятор C на своем компьютере, и если у вас установлен 1, то он не обязательно такой же, как у вас.
Цитата:
Я не уверен, в чем заключается ваше замешательство, когда вы говорите: "нет ничего, чтобы исправить, потому что вы не заявили о какой-либо проблеме."

Никакой путаницы, сарказма, потому что вы не заявили о проблеме, так что нет проблем, нет решения. :)

Вы, наконец, добавили сообщения об ошибках, 26 и 30-это номера строк, где есть ошибки. Проблема в том, что в вашем коде строки с ошибками равны 13 и 17.
Это означает, что ошибки происходят из другой программы, они не совпадают.
Это не будет мотивировать помощников.
Цитата:
Я не понимаю, что вообще означают эти ошибки и как их исправить.

Google-ваш друг, вставьте имя компилятора и сообщение об ошибке, вы получите много объяснений.

Совет: не учитесь, решая задачи, найдите учебник и следуйте ему, делайте упражнения, экспериментируйте, таким образом вы узнаете основы.


Member 14770192

Thank you guys for responding. I'm not sure what it was about the question that made you guys angry, I guess I'm not the only one that doesn't like C as much. Regarding Griff's statement that I am not thinking and trying to get others to do it for me I would argue that that's wrong since I am doing the code myself and posting what I have done along with the errors to see if you guys, with a lot more experience than me, can detect and help me fix. If I wanted to get someone to do it for me I would not even attempt them, I would just pay someone to do them, but I am not. I appreciate the advice Griff on using a debugger, I will follow up on that since I do think it will make it even easier for me to understand what the program is doing. Practice, I appreciate you helping me with a problem earlier on today I am grateful for the time and patience you had while helping me. I'm not sure where your confusion lies when you say that "there is nothing to fix because you didn't stated any problem." I clearly wrote on the 12th line of the body of the question: "Not sure how to fix the errors i got which are:" I am confused as to what the errors even mean, or how to even fix them. Anyways I appreciate the fact that you guys help people like myself who are learning coding.

OriginalGriff

Вы не научитесь кодировать, бросая код вместе и паникуя, когда он не работает. Просить других людей исправлять каждую тривиальную проблему с вашим кодом-это не жизнеспособная стратегия развития, это путь к полному провалу, потому что по мере того, как проекты становятся все более сложными, объем кода соразмерно растет. И задачи, над которыми вы работаете в данный момент, намеренно тривиальны, чтобы заставить вас мысленно исправить свой код - если вы не научитесь делать это на тривиальных примерах, вы будете полностью ошеломлены, когда попытаетесь создать 100 000 строк кода "нормального приложения".
Подумайте об этом, как о вождении автомобиля: вы начинаете с инструктора в маленькой бесхребетной штуке на тихих дорогах, чтобы вы могли изучить рефлексы и навыки, необходимые вам в относительной безопасности. Если вы не выучите их там, купите шофера, чтобы он сделал это для вас, тогда, когда вы прыгнете в Феррари и с ревом уедете, вы умрете очень быстро и, вероятно, заберете с собой пару дюжин других...
Это одно и то же: вождение и программирование-это навыки; вы развиваете их, используя их, а не наблюдая, как кто-то другой делает это!

Поэтому начните думать о своих проблемах и видеть, какие решения вы можете придумать, вместо того чтобы полагаться на других, чтобы вытащить вас из ямы!

Stefan_Lang

..компилятор не может просто сказать: "у вас ошибка ! на-на-на ..."

Теперь я задаюсь вопросом, существует ли такой компилятор - он имел бы какую-то развлекательную ценность ;-)

Patrice T

лол

Рейтинг:
1

CPallini

Вы должны любить C, вместо того, чтобы не любить его. :-)
Попробуй

#include <stdio.h>


double force( double vo, double vi, double d, double m);

int main()
{
  const double M = 3000;
  const double Vo = 100;
  const double Vi = 0;

  printf("\nDistance:\t\tForce in Newtons:\n");

  for (double d = 10.0 ; d < 1010.0; d+=10.0)
  {
    double f = force( Vo, Vi, d, M);
    printf("\t%4.0f\t\t%7.3f\n", d, f);
  }
  return 0;
}

double force( double vo, double vi, double d, double m)
{
  double f = (vo*vo-vi*vi)/2.0/d;
  return f;
}


Рейтинг:
0

Stefan_Lang

1. Старайтесь усерднее при указании названия темы. Каждый, кто размещает здесь qquestion, нуждается в помощи. Это не полезная информация.

2. Старайтесь лучше понимать свой компилятор. Сообщения, которые он послал вам, достаточно ясны и не трудны для понимания или исправления. Думай! При необходимости обратитесь к документации компилятора.

3. Изучите основы. Действительно, вещи, с которыми у вас есть проблемы, находятся в самом низу программирования вообще и C в частности. Ни мне, ни кому - либо другому нет смысла давать вам конкретный ответ на эту программу-все, что вам нужно, это учиться и понять сырые основы программирования! Понимание требует мышления, никто другой не может сделать это за вас!