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

C++ ilość znaków zwracana jako gwiazdki

VPS Starter Arubacloud
+1 głos
491 wizyt
pytanie zadane 13 lutego 2021 w C i C++ przez Anonymo Nowicjusz (150 p.)

Napisz program w C++ umożliwiający wprowadzenie na ekran napisu zawierającego imię i nazwisko, a pod nim tyle gwiazdek ile znaków jest w napisie. Zdefiniuj funkcję Gwiazdki jako typ void. Zadaniem funkcji jest wprowadzenie w jednym wierszu tylu gwiazdek z ilu znaków składa się imię i nazwisko (ze spacją).

Przykład:

Imię Nazwisko

*************

Poniżej mój kod, ale nie działa jak powinien. Proszę o pomoc

#include <iostream>
using namespace std;

void Gwiazdki(int n)
{
    int i;
    for(i=0; i<=n; i++)
        {
            cout << "*";

        }
}

int main()
{
    int num;
    cout << "Podaj imie i nazwisko" << endl;
    cin>>num;
    Gwiazdki(num);
    cout<<endl;
    return 0;
}

 

1 odpowiedź

+1 głos
odpowiedź 13 lutego 2021 przez SzkolnyAdmin Szeryf (86,280 p.)
1. Stringa nie wczytuj do zmiennej typu int - zdefiniuj zmienną typu string.

2. Imię i nazwisko do stringa wczytaj do zmiennej przy pomocy getline.

3. Do funkcji Gwiazdka przekaż długość stringa (metoda length).

4. W funkcji Gwiazdka iteruj od 0 do n-1 lub od 1 do n (n - przekazana długość stringa).
1
komentarz 14 lutego 2021 przez VBService Ekspert (251,210 p.)

5. Jeżeli zmienna użyta do iteracji nie jest wykorzystywana poza pętlą można ją zainicjować tak: wink


    for(int i=0; i<n; i++)
        {
            cout << "*"; 
        }

 

1
komentarz 14 lutego 2021 przez SzkolnyAdmin Szeryf (86,280 p.)
Oczywiście, masz rację. Oszczędzi to linii kodu. A linia do linii i plik mniejszy.
komentarz 14 lutego 2021 przez Anonymo Nowicjusz (150 p.)

czy void będzie wyglądał w ten sposób?

 

void Gwiazdki(string n)
{
    string i;
    for(i=1; i<=n;)
        {
            cout << "*";
        }
    getline(cin, i);
}

 

1
komentarz 14 lutego 2021 przez VBService Ekspert (251,210 p.)
edycja 14 lutego 2021 przez VBService

Twoja funkcja Gwiazdki pierwotna, była (jest) w porządku, tylko te dwie zmiany.
 

void Gwiazdki(int n)
{
    for(int i=0; i<n; i++)
      {
          cout << "*"; 
      }
}

 

czy void będzie wyglądał w ten sposób?

Funkcja typu void c++  [ 1 ]  [ 2 ]  [ 3 ]

 

 

1. Stringa nie wczytuj do zmiennej typu int - zdefiniuj zmienną typu string.

2. Imię i nazwisko do stringa wczytaj do zmiennej przy pomocy getline.

3. Do funkcji Gwiazdka przekaż długość stringa (metoda length).

4. W funkcji Gwiazdka iteruj od 0 do n-1 lub od 1 do n (n - przekazana długość stringa).

Zmiany powinny dotyczyć tego fragmentu kodu

    int num;
    cout << "Podaj imie i nazwisko" << endl;
    cin>>num;
    Gwiazdki(num);
    cout<<endl;

 

komentarz 14 lutego 2021 przez Anonymo Nowicjusz (150 p.)

Wyszło mi coś takiego, ale zwraca liczbę znaków. Nie wiem co zrobić, żeby wypisało odpowiednią ilość gwiazdek.

int main()
{
    string name;
    cout << "Podaj imie i nazwisko" << endl;
    getline (cin, name);
    cout << name.length() << endl;
    cout<<endl;
    return 0;
}

 

2
komentarz 14 lutego 2021 przez SzkolnyAdmin Szeryf (86,280 p.)

W linii 6 daj:

Gwiazdka(name.length());

 

komentarz 15 lutego 2021 przez VBService Ekspert (251,210 p.)

@Anonymo, no już prawie dobrze  wink, ale ...

#include <iostream>
using namespace std;
 
void gwiazdki(int n)
{
    for(int i=0; i<n; i++)
    {
        cout << "*";
    }
}
 
int main()
{
    string name;
    cout << "Podaj imie i nazwisko" << endl;
    getline(cin, name);
    gwiazdki(name.length());
    cout << endl << endl;

    return 0;
}

Podobne pytania

+1 głos
3 odpowiedzi 355 wizyt
pytanie zadane 9 lutego 2021 w C i C++ przez Kacperek_code Obywatel (1,690 p.)
0 głosów
3 odpowiedzi 24,402 wizyt
pytanie zadane 14 lipca 2017 w C i C++ przez Shiro Stary wyjadacz (10,300 p.)
0 głosów
2 odpowiedzi 2,604 wizyt

92,453 zapytań

141,262 odpowiedzi

319,088 komentarzy

61,854 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...