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

Pętle while,ify,wczytywanie liczb.

Aruba Cloud VPS - 50% taniej przez 3 miesiące!
0 głosów
109 wizyt
pytanie zadane 25 października w C i C++ przez deszcz_b123 Nowicjusz (140 p.)

Hej, potrzebuję pomocy w takim zadaniu:

Napisać aplikację, która wczytuje liczby całkowite do momentu aż dwie pierwsze liczby nie pojawią się ponownie w tej samej kolejności. Obliczyć i wydrukować liczbę wczytanych liczb dwucyfrowych podzielnych przez x (x – wczytane przez użytkownika). Zadanie wykonać bez użycia tablic.

Ogólnie to program prawie działa. Tylko kiedy wczytuje się liczby to działa to tylko jak wpisuje się je parami. Mam namyśli że kiedy wczytamy liczby 5,6 i 5,6 to przerwie program. Ale kiedy wczytamy 5,6,7 i 5,6 to pętla tego nie przerywa. Zobaczcie co mam już napisane. Proszę o pomoc.

#include <iostream>

using namespace std;

int main()
{
  int liczba1,liczba2,liczba3,ilosc=0,zmienna1,zmienna2,x;


    cout <<"Podaj x: "<<endl;
    cin >>x;
    cout <<"Podaj swoje liczby" << endl;
    cin >> liczba1>>liczba2;



    if((liczba1>=10)&&(liczba1<=99)&&(liczba1%x==0)){
   ilosc++;
   }
    if((liczba2>=10)&&(liczba2<=99)&&(liczba2%x==0)){
   ilosc++;
   }
   if((liczba1>=-99)&&(liczba1<=-10)&&(liczba1%x==0)){
   ilosc++;
   }
    if((liczba2>=-99)&&(liczba2<=-10)&&(liczba2%x==0)){
   ilosc++;
   }

    while((liczba1!=zmienna1) || (liczba2!=zmienna2)){

        cin>>zmienna1>>zmienna2;
        

    if((liczba3>=10)&&(liczba3<=99)&&(liczba3%x==0)){
   ilosc++;
   }

    if((liczba3>=-99)&&(liczba3<=-10)&&(liczba3%x==0)){
   ilosc++;
   }


  }

cout <<"Ilosc dwucyfrowych podzielnych: "<<ilosc<<endl;


  return 0;
}

 

1 odpowiedź

0 głosów
odpowiedź 26 października przez TOWaD Mądrala (6,100 p.)
edycja 6 dni temu przez TOWaD

// u mnie nie da się w bloczek :(, nie działa.na komputerze.
//minimum przeróbek ale że powinien działać
 

#include <iostream>

using namespace std;

int main() {
  int liczba1, liczba2, liczba3, ilosc = 0, zmienna1, zmienna2, x;

  cout << "Podaj x: " << endl;
  cin >> x;
  cout << "Podaj swoje liczby" << endl;

  if (!(cin >> liczba1 >> liczba2)) exit(-1); // błąd wczytania wyjdz z programu;

  if ((liczba1 >= 10) && (liczba1 <= 99) && (liczba1 % x == 0)) {
    ilosc++;
  }
  if ((liczba2 >= 10) && (liczba2 <= 99) && (liczba2 % x == 0)) {
    ilosc++;
  }
  if ((liczba1 >= -99) && (liczba1 <= -10) && (liczba1 % x == 0)) {
    ilosc++;
  }
  if ((liczba2 >= -99) && (liczba2 <= -10) && (liczba2 % x == 0)) {
    ilosc++;
  }
  //////////////////// dodać start;
  zmienna1 = liczba2;
  //////////////////// dodać end;
  while ( /*(liczba1!=zmienna1) || (liczba2!=zmienna2)*/ 1) {

    //cin>>zmienna1>>zmienna2;
    if (!(cin >> liczba3)) exit(-2); // błąd wczytania wyjdz z programu;

    if ((liczba3 >= 10) && (liczba3 <= 99) && (liczba3 % x == 0)) {
      ilosc++;
    }

    if ((liczba3 >= -99) && (liczba3 <= -10) && (liczba3 % x == 0)) {
      ilosc++;
    }
    ///////////////////////dodać start;
    zmienna2 = liczba3;
    if ((liczba1 == zmienna1) && (liczba2 == zmienna2)) break;
    zmienna1 = zmienna2;
    ///////////////////////dodać end;

  }

  cout << "Ilosc dwucyfrowych podzielnych: " << ilosc << endl;

  return 0;
}

 

komentarz 26 października przez TOWaD Mądrala (6,100 p.)
edycja 6 dni temu przez TOWaD

// i mała refaktoryzacja

#include <iostream>
 //int abs (int a) {return a<0?-a:a;}
using namespace std;
int main() {
  int liczba1, liczba2, liczba3, ilosc = 0, zmienna1, x;

  cout << "Podaj x: " << endl;
  cin >> x;
  //funkcja lambda by podawać tylko jeden argument
  auto podzielne = [ & x, & ilosc](auto l1) {
    if ((abs(l1) > 9) && (abs(l1) < 100) && (l1 % x == 0)) ilosc++;
    return;
  };

  cout << "Podaj swoje liczby" << endl;

  if (!(cin >> liczba1 >> liczba2)) exit(-1); // błąd wczytania wyjdz z programu;

  podzielne(liczba1);
  podzielne(liczba2);

  zmienna1 = liczba2;
  while (1) {
    if (!(cin >> liczba3)) exit(-2); // błąd wczytania wyjdz z programu;
    podzielne(liczba3);
    if ((liczba1 == zmienna1) && (liczba2 == liczba3)) break;
    zmienna1 = liczba3;

  }

  cout << "Ilosc dwucyfrowych podzielnych: " << ilosc << endl;
  return 0;}

Podobne pytania

0 głosów
2 odpowiedzi 1,016 wizyt
pytanie zadane 14 sierpnia 2016 w C i C++ przez pokrywa1 Użytkownik (990 p.)
0 głosów
1 odpowiedź 971 wizyt
pytanie zadane 27 maja 2018 w Python przez El Lirón Obywatel (1,350 p.)
0 głosów
2 odpowiedzi 2,100 wizyt

93,089 zapytań

142,047 odpowiedzi

321,473 komentarzy

62,435 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!

...