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

question-closed Pętla while z warunkiem string

VPS Starter Arubacloud
+1 głos
1,973 wizyt
pytanie zadane 22 września 2015 w C i C++ przez Tymek Janiak Początkujący (460 p.)
zamknięte 25 września 2015 przez Tymek Janiak
jestem początkującym programistą.

Trochę nie rozumiem pętli while i do while

 

ostatnio chciałem dostać dodadkową ocene z informatyki

więc razem z kolegą zaczelismy pisać program w c++

mam prawdo podobnie problem z tym

    if (odp=="nie")
{
    while (odp!="nie")
        srand(time(NULL));
    liczba=rand()%23;
     cout<<"Czy :"<<liczba<<"jestobecny?"<<endl;
     cin>>odp;
     if (odp=="nie")
     {
             srand(time(NULL));
    liczba=rand()%23;
     cout<<"Czy :"<<liczba<<"jestobecny?"<<endl;
     cin>>odp;
     }
}

program pyta sie ponownie tylko 1 raz i wychodzi z pętli już gdy drugi raz napisze : nie to program zachowuje sie tak jak bym podał coś rózengo od nie

oto cały kod

wiem ze funkcje bez sensu ale chciałem sie tego nauczyć

#include <iostream>
#include <windows.h>
#include <cstdlib>
#include <time.h>
#include <iomanip>
#include <conio.h>
#include <string>
using namespace std;
float lo1,lo2,l,y,liczba;
string odp;

float dodawanie(float &x, float &y)
{
    return x+y;
}
float odejmowanie (float &x, float &y)
{
    return x-y;
}
float mnozenie (float &x ,float &y)
{
    return x*y;
}
float dzielenie (float &x,float &y)
{
    return x/y;
}

int main()

{

srand(time(NULL));
    liczba = rand()%22+1;
    if(liczba==8)
    {
        while(liczba!=8)
        {

      srand(time(NULL));
    liczba = rand()%22+1;
        }
    }
    else
    cout<<"Programem bedzie operowal NR:"<<liczba<<endl;

   cout<<"czy jest obecny? odpowiedz tak lub nie"<<endl;
    cin>>odp;
    if (odp=="nie")
{
    while (odp!="nie")
        srand(time(NULL));
    liczba=rand()%23;
     cout<<"Czy :"<<liczba<<"jestobecny?"<<endl;
     cin>>odp;
     if (odp=="nie")
     {
             srand(time(NULL));
    liczba=rand()%23;
     cout<<"Czy :"<<liczba<<"jestobecny?"<<endl;
     cin>>odp;
     }
}

 

Sleep(5000);
    system("cls");

 

          cout << "Witam Klase 1c z gimnazjum w liskowie! " << endl;
Sleep (2000);
system ("cls");

    cout<<"Matematyka to ciekawy przedmiot ale czasami trzeba ja uproscic "<<endl;
    Sleep (4000);
system ("cls");

cout<<"Za 5 sekund zobaczymy ..."<<endl;
for( y = 5; y >= 0; y--)
{
    Sleep(1000);
    system("cls");
cout<<y<<endl;
}
system("cls");

cout<<"Kalkulator :>"<<endl;
 Sleep(3000);
    system("cls");
    while(l!=5)
    {

cout<<"UWAGA ZAMISAT , URZYJ .   !!!"<<endl;
cout<<"UWAGA Podawaj tylko i wyloncznie liczby lub .  !!!"<<endl;

   float* w ;
        w = & lo1 ;
      w = new float;
    cout << "Podaj liczbe Operazyjna" << endl;
    cin>>*w;
    cout<<"Podaj 2 liczbe operacyjna"<<endl;
   float* y ;
        y = & lo2 ;
      y = new float;
    cin>>*y;

    cout<<"1 Dodawanie "<<endl;
cout<<"2 Odejmowanie "<<endl;
cout<<"3 Mnozenie "<<endl;
cout<<"4 Dzielenie "<<endl;
cout<<"5. wyjscie"<<endl;

cout<<"Podaj liczbe z menu"<<endl;
cin>>l;
cout<<setprecision(100);
    if(l==1)
cout<<dodawanie(*w,*y)<<endl;
    if(l==2)
cout<<odejmowanie(*w,*y)<<endl;
    if(l==3)
cout<<mnozenie(*w,*y)<<endl;
    if(l==4)
cout<<dzielenie(*w,*y)<<endl;
if (l!=1 && l!=2 && l!=3 && l!=4 && l!=5) cout<<"Nie ma takiej opcji !!!"<<endl;
if (l==5)
{
    cout<<"Dzienkuje za prace z programem :>"<<endl;
}

system ("PAUSE");
system ("cls");
delete [] w;
w=NULL;
delete [] y;
y=NULL;
    }
return 0;
}
komentarz zamknięcia: Problem rozwiązany :)

2 odpowiedzi

0 głosów
odpowiedź 22 września 2015 przez mrcnsct Nałogowiec (36,390 p.)
while(odp=="nie"){
        liczba=rand()%23;
        cout<<"Czy :"<<liczba<<"jestobecny?"<<endl;
        cin>>odp;
    }

Spróbuj tak.

komentarz 22 września 2015 przez Tymek Janiak Początkujący (460 p.)
Dziekuje działa
0 głosów
odpowiedź 22 września 2015 przez pewolt Mądrala (5,790 p.)

Witam

ten warunek odp!="nie" oznacza ze gdy odp nie bedzie sie rownac "nie" to bedze prawda czyli petla bedze sie wykonywac do mometu az opd bedzie rowne "nie". Dlatago powinienes zrobic cos takiego odp == "nie". I jeszcze jedna sprawa daj petle w klamry {} bo jak nie dasz to w petli bedze tylko srand(time(NULL));

Podobne pytania

0 głosów
1 odpowiedź 150 wizyt
pytanie zadane 6 grudnia 2015 w C i C++ przez Kamil1234 Użytkownik (650 p.)
0 głosów
1 odpowiedź 509 wizyt
pytanie zadane 16 maja 2018 w PHP przez intoksynator Gaduła (3,450 p.)
+1 głos
5 odpowiedzi 1,066 wizyt
pytanie zadane 20 marca 2016 w C i C++ przez mateusz12 Użytkownik (530 p.)

92,843 zapytań

141,782 odpowiedzi

320,858 komentarzy

62,174 pasjonatów

Motyw:

Akcja Pajacyk

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

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...