#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.
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.
#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
w linii 22:
return cyfry;// zamiast return cy;
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ę.
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; }
93,695 zapytań
142,612 odpowiedzi
323,223 komentarzy
63,224 pasjonatów
Motyw:
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
Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.