0
votes

Comment puis-je éviter cette impression sur la même ligne?

Je tente de créer une forme carrée à partir de X et de O (la frontière étant X et l'intérieur étant Os), et j'essaie d'éviter le dernier morceau de code avec mon imprimé en boucle sur la même ligne. Toute aide serait grandement appréciée!

#include <iostream>
using namespace std;

int main() {
  int x = 0;
  cout << "Please enter an integer for the dimension that will represent the "
          "rows and columns: "
       << endl;
  cin >> x;
  cout << endl;

  for (int i = 0; i <= x; i++) {
    for (int j = x; j > i; j--)
      cout << "X";
    cout << endl;
  }

  for (int i = 0; i < x; i++) {
    for (int j = 0; j < i; j++) {
      cout << " ";
    }
    for (int k = x; k >= i + 1; k--) {
      cout << "X";
    }
    cout << endl;
  }
  cout << endl;

  for (int m = 0; m < x; m++) {
    cout << "X";
  }
  for (int m = 0; m < x - 2; m++) {
    cout << "X";
    for (int n = 0; n < x - 2; n++) {
      cout << "O";
    }
  }
  for (int m = 0; m < x; m++) {
    cout << "X";
  }
  cout << endl;

  return 0;
}


4 commentaires

Veuillez inclure l'exemple de sortie de votre application et ce que vous voulez que la sortie correcte soit comme


En outre, je conseillerais contre l'utilisation de std :: endl pour les nouvelles lignes, car cela inclut un STD :: flush . Il suffit d'utiliser '\ n' pour les lignes neuves.


Qu'entendez-vous par le dernier bit de code?


Au fait, vous pouvez vérifier le Lien suivant pour comprendre Pourquoi à l'aide de NAMESPACE STD; est l'incarnation du mal :)


3 Réponses :


0
votes
  1. divisez votre code en fonctions qui remplissent la tâche la plus simple (en fonction du dossier de division et de conquérir)
  2. Évitez de répéter le code

    Je ferais quelque chose comme ceci: xxx


1 commentaires

Trop de code pour une fonction aussi simple. La scission est bien jusqu'à une certaine limite. La scission des opérations trop atomiques ajoute des appels / bruits de fonction inutiles (pensez que le code doit être aussi lisible que possible).



0
votes

Comment puis-je éviter cette impression sur la même ligne? P>

Je ne suis pas sûr que j'ai bien compris votre question, mais il vous suffit d'imprimer sur une nouvelle ligne en utilisant \ n code> (échapper n em> sera interprété comme une alimentation en ligne).
Par exemple: P>

void drawSquare(size_t s)
{
    drawSquareShape(s, s);
}


0 commentaires

2
votes

Il semble que vous signiez les éditions suivantes de votre sortie de votre dernier modèle.

X

XX
XX

XXX
XOX
XXX

XXXX
XOOX
XOOX
XXXX

XXXXX
XOOOX
XOOOX
XOOOX
XXXXX

XXXXXX
XOOOOX
XOOOOX
XOOOOX
XOOOOX
XXXXXX

XXXXXXX
XOOOOOX
XOOOOOX
XOOOOOX
XOOOOOX
XOOOOOX
XXXXXXX

XXXXXXXX
XOOOOOOX
XOOOOOOX
XOOOOOOX
XOOOOOOX
XOOOOOOX
XOOOOOOX
XXXXXXXX

XXXXXXXXX
XOOOOOOOX
XOOOOOOOX
XOOOOOOOX
XOOOOOOOX
XOOOOOOOX
XOOOOOOOX
XOOOOOOOX
XXXXXXXXX


0 commentaires