Program symulujący strzelanie do tarczy.

0

Witam mam problem z poniższym zadaniem. Program pokazuje nietrafione strzały i ignoruje "for" proszę o pomoc. Program napisany w C.
Napisz program symulujący strzały do tarczy. Użytkownik powinien podać średnicę tarczy. Zakładamy, że znajduje się ona w punkcie (0, 0) układu współrzędnych. Użytkownik powinien podać 6 par wartości zmiennoprzecinkowych będących miejscami kolejnych strzałów. Po każdej parze użytkownik powinien otrzymać informację zwrotną o ilości zdobytych punktów w ostatnim strzale lub napis "missed", jeżeli strzał nie trafił w tarczę. Na koniec należy wyświetlić sumę zdobytych punktów.
Za trafienie w centralny okrąg, którego średnica stanowi 10% średnicy tarczy otrzymuje się 10 punktów, a każde kolejne 10% średnicy zmniejsza liczbę zdobytych punktów o 1.

#include <stdio.h>
#include <math.h>

int main()
{
    float srednica; //średnica
    int sum = 0;

    printf("Podaj średnicę tarczy: ");
    scanf("%f", &srednica);

    for (int i = 0; i < 7; i++) {
        float x;
        float y;
        printf("Podaj x: ");
        scanf("%f", &x);
        printf("Podaj y: ");
        scanf("%f", &y);
        float r;

        r = srednica / 2;

        if (pow((0 - x), 2) + pow((0 - y), 2) > pow(r, 2)) {
            printf("missed\n");
        }
        else {
            float p = 1;
            int i = 0; //punkt
            for (; p == 0.1; p -= (0.1)) {
                float r2 = pow((r * p), 2);
                if (r2 <= pow((0 - x), 2) + pow((0 - y), 2)) {
                    i++;
                    printf("Zdobywasz %d pkt", i);
                }
            }
        }
    }

    return 0;
}
0

for(;Warunek Kontynuacji pętli;)

float p = 1;
            for (; p == 0.1; p -= (0.1)) // 1==0.1 ? nie! koniec, zero kroków pętli

Doprawdy musisz robić to w pętli?
Oblicz dystans, odejmij średnicę, podziel przez 0.1, ...

1 użytkowników online, w tym zalogowanych: 0, gości: 1