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;
}
3 Réponses :
Je ferais quelque chose comme ceci: p>
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).
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); }
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
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 code> pour les nouvelles lignes, car cela inclut unSTD :: flush code>. Il suffit d'utiliser'\ n' code> 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; code> est l'incarnation du mal :)