Есть ли в этом смысл?
Я застрял здесь с 4 ошибками, и это потому, что я не объявил целые числа q, d, n, p. Но если я сделаю это, он продолжит посылать мне больше ошибок.
Там может быть что-то о смешанных целых и поплавках.
#include <cs50.h>
#include <stdio.h>int main(void)
{
{
printf("O hai! ");
}
float valueTotal, quarter, valueQuarter, dime, valueDime,nickel, valueNickel, penny, valuePenny;
do
{
printf("How much change is owed?\n");
valueTotal = GetFloat();
}
while (valueTotal <= 0);for (float quarter = 0; valueTotal >= 0.25; quarter--)
{
valueQuarter = valueTotal - ( q * 0.25);
}
for (float dime = 0; valueQuarter >= 0.10; dime--)
{
valueDime = valueQuarter - ( d * 0.10);
}
for (float nickel = 0; valueDime >= 0.05; nickel--)
{
valueNickel = valueDime - ( n * 0.05);
}
for (float penny = 0; valueNickel >= 0.01; penny--)
{
valuePenny = valueNickel - ( p * 0.01);
}
printf("q+d+n+p\n");
}
Я не объявил целые числа q, d, n, p.
Это именно ваша проблема — по крайней мере, одна из них, в любом случае. Если эти переменные не объявлены, как в мире программа / код должна оценивать что-то вроде q * 0.25
? Если бы я сказал: «Эй, чувак, что х раз 0,25?» Вы бы не имели ни малейшего представления или сказали бы, что ответ зависит от x. То же самое относится и к этому коду.
Вы сказали:
Но если я сделаю это, он продолжит посылать мне больше ошибок.
Я предполагаю, что вам также нужно инициализировать их (или, с точки зрения непрофессионала, установить их равными чему-то, то есть. Q = 0)
Кроме того, ни одно из ваших условий цикла на самом деле не меняется … это означает, что они бесконечно повторяются. Убедитесь, что код внутри вашего цикла действительно помогает вам достичь цели выполнения условия цикла; например:
for (float quarter = 0; valueTotal >= 0.25; quarter--)
{
valueQuarter = valueTotal - ( q * 0.25);
}
Значение valueTotal ВСЕГДА будет больше 0,25 (если оно меньше 0,25 для начала), поскольку вы никогда не меняете его вообще.