• 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
129 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,250 p.)
edycja 30 października 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,250 p.)
edycja 30 października 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,055 wizyt
pytanie zadane 14 sierpnia 2016 w C i C++ przez pokrywa1 Użytkownik (990 p.)
0 głosów
1 odpowiedź 991 wizyt
pytanie zadane 27 maja 2018 w Python przez El Lirón Obywatel (1,350 p.)
0 głosów
2 odpowiedzi 2,133 wizyt

93,166 zapytań

142,177 odpowiedzi

321,946 komentarzy

62,495 pasjonatów

Advent of Code 2024

Top 15 użytkowników

  1. 688p. - dia-Chann
  2. 676p. - CC PL
  3. 675p. - Łukasz Piwowar
  4. 664p. - Marcin Putra
  5. 662p. - Łukasz Eckert
  6. 649p. - Michal Drewniak
  7. 641p. - rafalszastok
  8. 641p. - rucin93
  9. 629p. - Piotr Aleksandrowicz
  10. 629p. - Adrian Wieprzkowicz
  11. 621p. - Dawid128
  12. 612p. - Mikbac
  13. 611p. - ksalekk
  14. 606p. - Mariusz Fornal
  15. 602p. - Michał Telesz
Szczegóły i pełne wyniki

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 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...