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

Program drukujący na ekranie pierwszą literę M.

VPS Starter Arubacloud
0 głosów
674 wizyt
pytanie zadane 12 grudnia 2021 w C i C++ przez olcia Nowicjusz (200 p.)
Program drukujący na ekranie pierwszą literę M.
N.p.
FFFFFFF
F
F
F
FFFF
F
F
F

Na wejściu powinien być podany parametr określający wielkość litery.

Mam takie polecenie i nie wiem czy robie to dobry spoobem

#include <iostream>

using namespace std;

int main() {
    for (int i = 0; i < 1; ++i) {
        cout << "MM                        MM\n"<< endl;
        cout << "MMMM                   MMMM\n"<< endl;
        cout << "MM  MM                MMMM\n"<< endl;
        cout << "MM    MM          MM   MM\n"<< endl;
        cout << "MM        MM        MM  MM\n"<< endl;
        cout << "MM        MM MM        MM\n"<< endl;
        cout << "MM         MM              MM\n"<< endl;
     }
1
komentarz 12 grudnia 2021 przez Wiciorny Ekspert (276,820 p.)
sformatuj kod do bloczków.
Na razie to nie robisz nic po za wypisywaniem tego samego w pętli która nie dość że jest pętlą o długości 1- czyli bez sensu
komentarz 13 grudnia 2021 przez TOWaD Mądrala (6,020 p.)
edycja 13 grudnia 2021 przez TOWaD
// Example program
#include <iostream>
#include <string>

int main()
{
  std::string name= R"(
FFFFFFF
F
F
F
FFFF
F
F
F
)";
  std::cout << name << "!\n";
}

https://en.cppreference.com/w/cpp/language/string_literal

edit:: sorki nie doczytałem pytania, powyższy sposób jest bezsensu,

bardziej tak i y=ax+b;

int x=4;
int y=4;
std::string s(x, '=');
s+='\n';
 std::vector<std::string> words4(y, "s");

https://en.cppreference.com/w/cpp/container/vector/vector

https://en.cppreference.com/w/cpp/string/basic_string/basic_string

edit 2: taki szkielet programu w dużym uproszczeniu

/******************************************************************************

                              Online C++ Compiler.
               Code, Compile, Run and Debug C++ program online.
Write your code in this editor and press "Run" button to compile and execute it.

*******************************************************************************/

// Example program
#include <iostream>
#include <string>
#include <vector>

int
main ()
{
  int x = 11, y = 7;
  {
    std::string col (x, '.');
    std::vector < std::string > row (y, col);
  for (auto & z:row)
      {
	z.at (0) = 'H';
	z.at (z.size () - 1) = 'H';
      }
    int mrow = row.size () / 2;
    row.at (mrow) = std::string (x, 'H');

  for (auto z:row)
      std::cout << z << std::endl;
  }
std::cout<<'\n'<<std::string(x,'_')<<'\n'<<std::endl;
  {
    std::string col (x, '.');
    std::vector < std::string > row (y, col);
  for (auto & z:row)
      {
	z.at (0) = 'H';
	z.at (z.size () - 1) = 'H';
      }
    int mrow = col.size () / 2;
  for (auto & z:row)
      if (mrow > 0)
	z.at (mrow--) = 'H';
    mrow = col.size () / 2;
  for (auto & z:row)
      if (mrow < z.size ())
	z.at (mrow++) = 'H';


  for (auto z:row)
      std::cout << z << std::endl;
  }
}

 

1 odpowiedź

0 głosów
odpowiedź 14 grudnia 2021 przez TOWaD Mądrala (6,020 p.)
edycja 14 grudnia 2021 przez TOWaD

By była odpowiedz, usmieszek

#include <iostream>
#include <string>
#include <vector>

struct coord
{
  float percentX;
  float percentY;
};
int
main ()
{
  int x = 20, y = 10;

// table for draw
  std::string col (x, '.');
  std::vector < std::string > rows (y, col);

  const coord eyeleft = { 0.3, 0.3 };
  const coord eyeright = { 0.6, 0.3 };

  std::vector < coord > nose =  {{0.4, 0.4},{0.5, 0.4}};
for (coord & c:nose)
    rows.at (y * c.percentY).at (x * c.percentX) = 'I';

  std::vector < coord > noseholes ={{0.4, 0.5},{0.5, 0.5}};
for (coord & c:noseholes)
    rows.at (y * c.percentY).at (x * c.percentX) = '0';

  std::vector < coord > mouth =
  {{0.2, 0.6},{0.3, 0.7},{0.4, 0.8},{0.5, 0.8},{0.6, 0.7},{0.7, 0.6}};

  rows.at (y * eyeleft.percentY).at (x * eyeleft.percentX) = 'O';
  rows.at (y * eyeright.percentY).at (x * eyeright.percentX) = 'O';
for (coord & c:mouth)
    rows.at (y * c.percentY).at (x * c.percentX) = 'x';


for (const auto & z:rows)
    std::cout << z << std::endl;
  return 0;
}

edit:: taki komentarz przy ewentualnym bad_alloc error


  size_t x = 20, y = 10;
.................
for (coord & c:nose)
 if(y * c.percentY<y && x * c.percentX<x )
    rows.at (y * c.percentY).at (x * c.percentX) = 'I';
else std::cerr<<'' poleciało za tablicę, badalloc error"<<std::endl;

//////////////////////////////////////////////////////////////////////
  int x = 20, y = 10;
.................
for (coord & c:nose)
 if(c.percentY>=0 && c.percentY<1 && c.percentX<1 && c.percentX>=0)
    rows.at (y * c.percentY).at (x * c.percentX) = 'I';
else std::cerr<<'' poleciało za tablicę, badalloc error"<<std::endl;

 

Podobne pytania

–1 głos
1 odpowiedź 4,039 wizyt
pytanie zadane 15 września 2018 w C i C++ przez TheOlllie Nowicjusz (150 p.)
0 głosów
1 odpowiedź 581 wizyt
0 głosów
1 odpowiedź 733 wizyt

92,950 zapytań

141,909 odpowiedzi

321,133 komentarzy

62,284 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 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...