Słupki z gwiazdek

0

Mam zrobic słupki z gwiazdek ktorych szerokosc bedzie nie zmienna, a wyskosc zalezna od uzytkownika tzn bedziemy mieli do wpisania 3 liczby i z nich bedzie brana wysokosc. Calosc bedzie wyrownana od dolu i ja mam problem z tym jak rozdzielic je zeby byly obok siebie slupki. np:






✯ ✯
✯ ✯
✯✯✯

int main()
{
	int a, b, c;
	cout << "Wprowadz 3 nieujemne liczby calkowite ";
	cin >> a;
	cin >> b;
	cin >> c;
	cout << "Wprowadzone liczby to: " << a<< " " << b << " " << c <<"\n";
	for (int i = 0; i <a; i++) {
		cout << "*"<<"\n";


	}
	cout << endl;
	for (int j = 0; j < b; j++) {
		cout << "*" << "\n";
		
	}
	cout << endl;
	for (int k = 0; k < c; k++) {
		cout << "*" << "\n";
	}


    return 0;
}

Tyle napisalem i nie wiem co dalej.

0

Obecnie robisz 3 osobne słupki. Musisz to wszystko zrobić w 1 pętli

  1. Ustalasz która liczba jest największa
  2. Iterujesz od największej liczby w dół, (czyli np. od 10 do 1), dla indeksu i i w pętli:
  • Jeżeli a jest większe lub równe idrukujesz gwiazdkę. W przeciwnym wypadku spację.
  • Jeżeli b jest większe lub równe idrukujesz gwiazdkę. W przeciwnym wypadku spację.
  • Jeżeli c jest większe lub równe idrukujesz gwiazdkę. W przeciwnym wypadku spację.
  • Drukujesz "\n"
0

Pomocny może okazać się znak '\r'

  1. Zapisujesz pierwszą gwiazdkę.
  2. Sprawdzasz czy trzeba wypisać następny słupek
    a) jeśli tak to wracasz kursorem na początek linii przez '\r' i dopisujesz dwie gwiazdki po dwóch spacjach
  3. Sprawdzasz czy trzeba wypisać kolejny słupek
    a) podobnie, z tym że trzy gwiazdki będzie trzeba wypisać po ilu gwiazdkach?
  • ** - pięciu

Teraz nabrałem wątpliwości czy te słupki chcesz drukować pod sobą czy obok siebie. Podałem propozycję jak wyświetlić je obok siebie

0

w ogole nie rozumiem o co chodzi Ci w tym zadaniu

2

Będę podawał dane abyś mógł łatwiej zrozumieć.

  1. Powinieneś określić maksymalną wysokość słupka na ekranie (np. 20 znaków w pionie)
  2. Z podanych zmiennych określ największą (zakładam np. 15)
  3. Obliczasz skalę poprzez podzielenie wysokości słupka na ekranie przez wartość maksymalną słupków (czyli w przykładzie 20 / 15)
  4. Wysokość każdego ze słupków w ilości gwiazdek to: wysokość_w_gwiazdkach = wysokość_danego_słupka * skala
  5. Obliczasz różnice pomiędzy maksymalną wysokością słupka w gwiazdkach a wyliczoną wysokością słupka w gwiazdkach (dla słupka o maksymalnej wysokości wynosi 0).
  6. Otwierasz pętlę for z indeksem od 0 do i < maksymalna_wysokosc_słupka_w_gwiazdkach. Jeśli wartość różnicy jest mniejsza lub równa wyliczonym w pkt 5, drukujesz gwiazdkę. Jeśli nie to spację.
0
  1. Obliczasz różnice pomiędzy maksymalną wysokością słupka w gwiazdkach a wyliczoną wysokością słupka w gwiazdkach (dla słupka o maksymalnej wysokości wynosi 0).

Nie rozumiem co mam tutaj policzyc.

1

Załóżmy że skala wynosi: 1.3333 (3 w okresie) bo: 20 / 15
Maksymalny słupek ma wartość 15 więc po przemnożeniu jego długość to: (20 / 15 ) * 15 = 20
Inny słupek ma wysokość np. 10, więc po przemnożeniu jego długość to: (20 / 15 ) * 10 = 13.3 (3 w okresie)
Różnica między 20 a 13.3, to 7. Dopiero od 7 linii zaczniesz dla tego słupka wyświetlać gwiazdkę :-)

Resztę sobie dostroisz ze względu na zaokrąglanie do wartości całkowitych...

Teraz zrozumiałe?

0

Tak wielkie dzięki :)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.