• 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)

Aruba Cloud - Virtual Private Server VPS
0 głosów
551 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,440 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,440 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,440 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,440 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,817 wizyt
0 głosów
0 odpowiedzi 184 wizyt
pytanie zadane 18 maja 2019 w C i C++ przez Delfinek Nowicjusz (120 p.)
0 głosów
0 odpowiedzi 486 wizyt

93,332 zapytań

142,325 odpowiedzi

322,402 komentarzy

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

...