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

Rozkład liczby na czynniki(problem)

Object Storage Arubacloud
0 głosów
317 wizyt
pytanie zadane 14 marca 2018 w C i C++ przez Scypyon Gaduła (3,450 p.)
#include <iostream>

using namespace std;

int liczba;

string Cyfry(int liczba){

    string cyfry = "";

    int i = 2;

    while(liczba>1){


            if(liczba%i==0) {
                    cyfry+=i+" ";
                    liczba=liczba/i;
            }
            else i++;
    }
    return cyfry;
}

int main()
{

    cout << "Podaj liczbe: " ;
    cin>>liczba;

    cout<<endl<<Cyfry(liczba);
    return 0;
}

Czy ktoś jest w stanie mi odpowiedzieć , dlaczego kiedy kompiluje problem to wypisuje mi on mojego couta"podaj liczbe"? W sensie w wyjściu.

2 odpowiedzi

0 głosów
odpowiedź 14 marca 2018 przez Bondrusiek Maniak (61,370 p.)
wybrane 15 marca 2018 przez Scypyon
 
Najlepsza

Witam,

nie możesz dodawać int do stringa. Zamień:

            if(liczba%i==0) {
                    cyfry+=i+" ";
                    liczba=liczba/i;
            }

na:

            if(liczba%i==0) {
                    cyfry+= to_string(i)+" ";
                    liczba=liczba/i;
            }

Funkcja to_string(liczba) zamienia liczbę na string.

komentarz 15 marca 2018 przez Scypyon Gaduła (3,450 p.)
#include <iostream>

using namespace std;

int liczba;

string Cyfry(int liczba){

    string cyfry = "";

    int i = 2;

    while(liczba>0){


            if(liczba%i==0) {
                cyfry+= to_string(i)+" ";
                liczba=liczba/i;
}
            else i++;
    }
    return cy;
}

int main()
{

    cout << "Podaj liczbe: " ;
    cin>>liczba;

    cout<<endl<<Cyfry(liczba);
    return 0;
}

program nawet się nie kompiluje

komentarz 15 marca 2018 przez Bondrusiek Maniak (61,370 p.)

w linii 22:

return cyfry;// zamiast return cy;
komentarz 15 marca 2018 przez Scypyon Gaduła (3,450 p.)
nadal to samo
komentarz 15 marca 2018 przez Bondrusiek Maniak (61,370 p.)

Podaj błąd kompilacji.

#include <iostream>

using namespace std;

int liczba;

string Cyfry(int liczba){

    string cyfry = "";

    int i = 2;

    while(liczba>1){


            if(liczba%i==0) {
                cyfry+= to_string(i)+" ";
                liczba=liczba/i;
}
            else i++;
    }
    return cyfry;
}

int main()
{

    cout << "Podaj liczbe: " ;
    cin>>liczba;

    cout<<endl<<Cyfry(liczba);
    return 0;
}

U mnie MinGW 4.7 powyższy program kompiluje się.

komentarz 15 marca 2018 przez Scypyon Gaduła (3,450 p.)
to_string was not declared in this scope
komentarz 15 marca 2018 przez Scypyon Gaduła (3,450 p.)
niestety do matury mogę pracować tylko w codeblocks
komentarz 15 marca 2018 przez Bondrusiek Maniak (61,370 p.)

Widocznie Twój kompilator nie wspiera w całości standardu C++11. Możesz spróbować zainstalować najnowszą wersję Code::Blocks lub poradzić sobie innymi bibliotekami/funkcjami np.

Za pomocą strumieni

#include <sstream>
...
stringstream ss;
ss << i;
string i_string = ss.str();
cyfry+= i_string + " ";
...

Całość

#include <iostream>
#include <sstream>
using namespace std;

int liczba;

string Cyfry(int liczba){

    string cyfry = "";

    int i = 2;

    while(liczba>1){


            if(liczba%i==0) {
                stringstream ss;
                ss << i;
                string i_string = ss.str();
                cyfry+= i_string + " ";
                liczba=liczba/i;
}
            else i++;
    }
    return cyfry;
}

int main()
{

    cout << "Podaj liczbe: " ;
    cin>>liczba;

    cout<<endl<<Cyfry(liczba);
    return 0;
}

 

komentarz 15 marca 2018 przez Scypyon Gaduła (3,450 p.)
Świetnie, działa :) Dzięki bardzo
–1 głos
odpowiedź 14 marca 2018 przez dunaj Użytkownik (950 p.)
Nie rozumiem pytania. Czy chodzi o to, dlaczego w konsoli wypisuje "Podaj liczbe"? Bo taką masz pierwszą instrukcję w programie ;)

Podobne pytania

+5 głosów
2 odpowiedzi 1,345 wizyt
0 głosów
0 odpowiedzi 121 wizyt
pytanie zadane 18 maja 2019 w C i C++ przez Delfinek Nowicjusz (120 p.)
0 głosów
0 odpowiedzi 252 wizyt

92,566 zapytań

141,420 odpowiedzi

319,614 komentarzy

61,952 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...