• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Problem z komendą goto w C

0 głosów
67 wizyt
pytanie zadane 25 marca w C i C++ przez Artrix Początkujący (290 p.)
zamknięte 25 marca przez Artrix

Mam problem z pętlą, muszę zrobić algorytm Eukidesa w wersji binarnej, wykorzystując wyłącznie istrukcji if, while, do-while i goto. Dostałem podane kroki co mam robić, ale utknąłem na funkcji "goto", ponieważ ciągle wyświetla się błąd " error: label ‘krok3’ used but not defined" oraz błąd z "krok4", Proszę o pomoc, co należy zaradzić w takiej sytuacji.

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

int main()
{
    int u,v,k,t;
    printf("u = "); scanf("%d", &u);
    printf("v = "); scanf("%d", &v);
    printf("k = "); scanf("%d", &k);
    printf("t = "); scanf("%d", &t);
    
    
    if(k == 0)
    k== k+1;
    u==u/2;
    v==v/2;
    do(t==-v);
    while (u/2 == u+1);
    goto krok4;
    do(t==u);
    while (u/2);
    int krok3()
    {
    t/2;
    t != 0;
    }
    int krok4()
    { if (t/2);
    goto krok3 ;
    }
    { if(t>0)
    u=t;
    if(t>!0)
    v== (-t);
    else (t==u-v);
    printf("krok3 = %d", t);
    goto krok3;
    }
    return 0;
}

 

komentarz zamknięcia: Problem rozwiązany

1 odpowiedź

+1 głos
odpowiedź 25 marca przez Michał Muzyka Pasjonat (24,160 p.)
#include <stdio.h>

int main()
{
    int i = 0;

    label:
    ++i;
    printf("%d ", i);
    if (i < 20)
        goto label;


    return 0;
}

Przykładowy kod używający goto, źle definiuje Pan etykietę dla skoku

komentarz 25 marca przez Artrix Początkujący (290 p.)
Dziękuję za pomoc, a wie Pan może jak podłożyć pod komendę int (np. krok3), wszystkie liczby rzeczywiste, bo Pan dał tam i = 0.
komentarz 25 marca przez Michał Muzyka Pasjonat (24,160 p.)
nie za bardzo rozumiem co Pan ma na myśli mówiąc wszystkie liczby rzeczywiste?
komentarz 25 marca przez Artrix Początkujący (290 p.)
Chodzi mi o to, by za "int i" wyszukiwało wszystkie liczby, a nie, że "i =0", chyba, że to tak nie działa i "i=0" wcale nie oznacza, że podstawia liczbę 0.
komentarz 25 marca przez Whiskey_Taster Stary wyjadacz (11,690 p.)

Takie przejście może trochę zająć, zważywszy, że jest ich continuum laugh

komentarz 25 marca przez Artrix Początkujący (290 p.)
Rozumiem, dziękuję za pomoc.
komentarz 25 marca przez Whiskey_Taster Stary wyjadacz (11,690 p.)

Ogółem, to rozważ przypomnienie sobie podstaw. Masz masę błędów typu: 
 

do(t==-v);
while (u/2 == u+1);

Instrukcja do...while wygląda całkiem inaczej. Ponadto sam warunek w while jest dziwny, bo traktując to jako równanie, otrzymujemy u = -2. Stąd lepiej od razu uprościć to do while(u != -2), bo nie wykonamy tyle operacji. To wierzchołek góry lodowej, stąd moja rada. 
Plus formatowanie kodu, to też ważne, żeby nie dostać oczopląsu 

Podobne pytania

0 głosów
3 odpowiedzi 86 wizyt
0 głosów
1 odpowiedź 87 wizyt
0 głosów
2 odpowiedzi 136 wizyt
pytanie zadane 15 października 2019 w C i C++ przez Karpik Użytkownik (680 p.)
Porady nie od parady
Forum posiada swój własny serwer Discord, dzięki któremu będziesz mógł po prostu pogadać z innymi Pasjonatami lub zapytać o jakiś problem. Podstrona z chatem znajduje się w menu pod ikoną człowieka w dymku.IRC

85,728 zapytań

134,512 odpowiedzi

298,568 komentarzy

56,635 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...