Ich habe versucht, diese Sanduhr-Muster, für eine Weile jetzt, und ich habe fest, wie es weiter geht, muss der Benutzer die Anzahl der # in der Spitze eingeben Zeile und um die Anzahl der Zeilen anzugeben. Wenn die Anzahl von # weniger als 3 ist, wird eine Fehlermeldung ausgegeben. Wenn die Anzahl der Zeilen kleiner als 1 ist, ist sie ungültig oder wenn sie weniger als 2 '#' s hat.Wie bekomme ich ein Sanduhrmuster in C++
Trotzdem bekomme ich dieses Muster, wenn ich 7 für die obere Reihe und 3 für die Anzahl der Reihen eingib.
7 # 's an der Spitze
5 #' s in der nächsten Reihe
3 # 's in der nächsten Reihe
3 #' s in der nächsten Reihe
5 # 'si n der nächste Zeile
7 # ‚s in der nächsten Zeile
Und ich brauche nicht eine der Zeilen mit 3 #‘ s, aber ich kann nicht scheinen, um es loszuwerden.
Auf jeden Fall hier ist mein Code:
// Declare and initialize variables
int topRow(0);
int row(0);
int i(0);
int k(0);
int j(0);
// Repeatedly prompt for top row size until valid value is entered
cout << "Enter size of the top row: " ;
cin >> topRow;
while(topRow < 3)
{
cout << "Size of the top tow must be at least three." << endl;
cout << "Enter size of the top row again: ";
cin >> topRow;
}
// Repeatedly prompt for the number of rows until valid value is entered
cout << "Enter number of rows: ";
cin >> row;
while(row == 0 || topRow/row < 2.0 || row < 1.0)
{
cout << "Invalid number of rows." << endl;
cout << "Enter number of top row again: ";
cin >> row;
}
// Print the hour glass
cout << endl;
for (i=1; i < topRow ; i++)
{
if (i <= row)
{ for (j=1; j <= i-1; j++)
{
cout << " ";
}
for (k=1; k <= topRow - (i*2 - 2) ; k++)
{
cout << "#";
}
cout << endl;
}
else
{
for (j = row ; j >= i - (row - 1); j--)
{
cout << " ";
}
for (k = row ; k >= topRow - (i*2 - 2); k--)
{
cout <<"#";
}
cout << endl;
}
}
// end program
return 0;
Bitte fügen Sie Beispiele für gültige Eingabe hinzu, was die Ausgabe dann sein soll und was die Ausgabe eigentlich ist. –
Sie müssen keine Eingabe-Routinen posten. Das ist mehr als die Hälfte deines Beitrags, der mit Dingen belegt ist, die nicht wichtig sind. Einfach die Eingabewerte in Ihrem Programm fest codieren. – PaulMcKenzie
Das Programm erfordert, dass ich Zahlen vom Benutzer eingegeben habe, so kann ich nicht nur hart codieren, ich habe auch fett, wie die Ausgabe oben aussehen sollte. – Carmine