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

question-closed problem z pętlą

0 głosów
94 wizyt
pytanie zadane 12 października w C i C++ przez patrykziel Nowicjusz (170 p.)
zamknięte 12 października przez patrykziel

Próbowałem stworzyć pętlę w której po wpisaniu odpowiedzi na pytanie program odpowiadał mi czy wykonałem zadanie dobrze czy źle. Niestety za każdym razem pisze dobra odpowiedz. Proszę o pomoc co tu zmienić ?(to tylko część większego programu)


 

  case 0:
        {
          for(i=0;i>=0;i++)
          {

              x=rand()%10+1;
              y=rand()%10+1;
              z=rand()%10+1;
              k=rand()%10+1*10;

              cout<<"Jezeli kangur w ciagu "<<x<<" minut skacze "<<y<<" razy to po czym musi odpoczac "<<z<<" minut to w ile minut wykona "<<k<<" skokow?"<<endl;
              cin>>odpowiedz[i];
              w[i]=(k/y)*(x+z);
              if(odpowiedz[i]=w[i])
                cout<<"poprawna odpowiedz"<<endl;

              else
              cout<<"Zla odpowiedz sprobuj jeszcze raz..."<<endl;
              }
              }

     

komentarz zamknięcia: Problem rozwiązany
komentarz 12 października przez PanRik Gaduła (3,170 p.)

Jeśłi możesz pokaż cały kod. 

Co to tej częsci interesuje mnie ten nieskończony for:
 

for(i=0;i>=0;i++)

Co chciałeś tym osiągnąć?

komentarz 12 października przez patrykziel Nowicjusz (170 p.)
Cały kod wyślę wieczorem, natomiast ta pętla ma powtarzać zadanie w kółko tylko, że zmieniając wartosć "i", tym samym zmieniając "szufladke" w tablicy przy wartościach "w" i "odpowiedz".
komentarz 12 października przez PanRik Gaduła (3,170 p.)

Ale wiesz o tym, że to nie zmienia faktu, że jest to pętla, która nigdy się nie skończy?
 

for( int i =0; i >= 0; i++ )
//Rób dopóki i będzie większe lub równe 0

Z tego co widzę robisz to na tablicach, więc na pewno wychodzisz po za ich zakres.
 

komentarz 12 października przez patrykziel Nowicjusz (170 p.)
Wiem, ale planuje dodać funkcje pozwalającą zamknąć program i w dodatku jestem pewien że nie przokroczy to ich zakresu do momentu zamknięcia programu ;p
komentarz 12 października przez patrykziel Nowicjusz (170 p.)

@PanRik, oto cały kod:

#include <iostream>
#include <cstdlib>
#include <time.h>

using namespace std;

int wybor, nr_zad, x, y, z, k, w[50], i, odpowiedz[50];
string powrot;

int main()
{
    srand(time(NULL));
    for(;;)
    {
    cout<<"Wybierz typ zadan:"<<endl;
    cout<<"---------------------------"<<endl;
    cout<<"1. Zadanie z czasem i dlugoscia trasy"<<endl;
    cout<<"2. Czysto obliczeniowe tekstowe"<<endl;
    cout<<"3. Czysta matematyka"<<endl;
    cout<<"4. Ilosc lat w przyszlosci"<<endl;
    cout<<"5. Wyjdz z programu"<<endl;

    if(!(cin>>wybor))
    {
        cerr<<"To nie liczba!";

    }

    else
    {
        switch(wybor)
        {
            case 1:
            for(;;)
    {
         nr_zad=rand()%4;

         switch(nr_zad)
         {
          case 0:
        {
          for(i=0;i>=0;i++)
          {

              x=rand()%10+1;
              y=rand()%10+1;
              z=rand()%10+1;
              k=rand()%10+1*10;

              cout<<"Jezeli kangur w ciagu "<<x<<" minut skacze "<<y<<" razy to po czym musi odpoczac "<<z<<" minut to w ile minut wykona "<<k<<" skokow?"<<endl;
              cin>>odpowiedz[i];
              w[i]=(k/y)*(x+z);
              if(odpowiedz[i]==w[i])
                cout<<"poprawna odpowiedz"<<endl;

              else
              cout<<"Zla odpowiedz sprobuj jeszcze raz..."<<endl;
              }
              }



          break;
}
return(0);
}
komentarz 12 października przez PanRik Gaduła (3,170 p.)

Szczerze powiedziawszy po po przeniesieniu linijek w taki sposób

z:

cin>>odpowiedz[i];
w[i]=(k/y)*(x+z);

na:

w[i]=(k/y)*(x+z);
cout << "odpowiedz: " << w[i] <<endl;
cin>>odpowiedz[i];

I wpisaniu innej w[i] niż się wyświetli daje błąd ,a jak wpisuje to samo to jest , że okej.
>Kod tutaj<

komentarz 12 października przez patrykziel Nowicjusz (170 p.)
Rzeczywiście dzięki wielkie za pomoc :D A wiesz może dlaczego się tak dzieje ?  Jeśli tak to prosiłbym o wyjaśnienie :)
komentarz 12 października przez PanRik Gaduła (3,170 p.)
Przeniosłem linijki w taki sposób, żeby było widać jaka jest poprawna odpowiedź i zobaczyłem , że działa xD. Ot cała filozofia.

1 odpowiedź

+1 głos
odpowiedź 12 października przez Rettles Obywatel (1,400 p.)
if(odpowiedz[i]=w[i])

Zamień na

if(odpowiedz[i]==w[i])

wink

komentarz 12 października przez patrykziel Nowicjusz (170 p.)
Tego już próbowałem, ale efekt jest wciąż ten sam
komentarz 12 października przez Secrus Stary wyjadacz (12,940 p.)
Ta zmiana ma znaczenie. Poza tym, pokaż cały kod, bo to co wrzuciłeś nie wystarczy do oceny co mogło pójść nie tak.
komentarz 12 października przez patrykziel Nowicjusz (170 p.)
#include <iostream>
#include <cstdlib>
#include <time.h>

using namespace std;

int wybor, nr_zad, x, y, z, k, w[50], i, odpowiedz[50];
string powrot;

int main()
{
    srand(time(NULL));
    for(;;)
    {
    cout<<"Wybierz typ zadan:"<<endl;
    cout<<"---------------------------"<<endl;
    cout<<"1. Zadanie z czasem i dlugoscia trasy"<<endl;
    cout<<"2. Czysto obliczeniowe tekstowe"<<endl;
    cout<<"3. Czysta matematyka"<<endl;
    cout<<"4. Ilosc lat w przyszlosci"<<endl;
    cout<<"5. Wyjdz z programu"<<endl;

    if(!(cin>>wybor))
    {
        cerr<<"To nie liczba!";

    }

    else
    {
        switch(wybor)
        {
            case 1:
            for(;;)
    {
         nr_zad=rand()%4;

         switch(nr_zad)
         {
          case 0:
        {
          for(i=0;i>=0;i++)
          {

              x=rand()%10+1;
              y=rand()%10+1;
              z=rand()%10+1;
              k=rand()%10+1*10;

              cout<<"Jezeli kangur w ciagu "<<x<<" minut skacze "<<y<<" razy to po czym musi odpoczac "<<z<<" minut to w ile minut wykona "<<k<<" skokow?"<<endl;
              cin>>odpowiedz[i];
              w[i]=(k/y)*(x+z);
              if(odpowiedz[i]==w[i])
                cout<<"poprawna odpowiedz"<<endl;

              else
              cout<<"Zla odpowiedz sprobuj jeszcze raz..."<<endl;
              }
              }



          break;
}
return(0);
}

 

Podobne pytania

+1 głos
2 odpowiedzi 104 wizyt
pytanie zadane 27 stycznia 2016 w C i C++ przez Kimi Obywatel (1,990 p.)
+1 głos
1 odpowiedź 81 wizyt
pytanie zadane 10 marca w C i C++ przez Sic Mądrala (6,690 p.)
0 głosów
2 odpowiedzi 140 wizyt
pytanie zadane 10 stycznia w C i C++ przez Sansi Użytkownik (720 p.)
Porady nie od parady
Publikując kody źródłowe korzystaj ze specjalnego bloczku koloryzującego składnię (przycisk z napisem code w edytorze). Nie zapomnij o ustawieniu odpowiedniego języka z rozwijanego menu oraz czytelnym formatowaniu kodu.Przycisk code

56,369 zapytań

101,067 odpowiedzi

208,200 komentarzy

28,041 pasjonatów

Przeglądających: 329
Pasjonatów: 10 Gości: 319

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.

...