Padrão de diamante usando loop while em c ++ [duplicado]
Sep 17 2020
Estou tentando imprimir um padrão de diamante usando loop while em c ++ que é baseado no comprimento do diamante, mas não estou obtendo a saída que queria ver. qual parece ser o problema com meu código?
#include <iostream>
using namespace std;
int main ()
{
cout << "Length of diamond:";
int length = 0;
cin >> length;
length = length/2;
int r = -length;
while (r <= length) {
r++;
int c = -length;
while (c <= length) {
c++;
if (abs (r) + abs (c) == length) cout << ".";
else cout << " ";
}
cout << endl;
}
return 0;
}
Respostas
brc-dd Sep 17 2020 at 08:31
Conforme apontado por john em seu comentário , o problema está em incrementar re c. Aqui está o código corrigido:
#include <iostream>
using namespace std;
int main() {
int length, r, c;
cout << "Length of diamond: ";
cin >> length;
cout << '\n';
length /= 2;
r = -length;
while (r <= length) {
c = -length;
while (c <= length) {
if (abs(r) + abs(c) == length)
cout << '.';
else
cout << ' ';
c++;
}
r++;
cout << '\n';
}
return 0;
}
Execução de amostra :
Length of diamond: 9
.
. .
. .
. .
. .
. .
. .
. .
.
Observe que pode haver mais de uma maneira de obter a saída desejada. (Por exemplo, fazer em r = -length - 1vez de r = -length, mesmo para c, conforme sugerido por Zhu Song em seu comentário .
Conselho: Familiarize-se com o seu depurador. Evite colocar using namespace std;.
O que significa um erro “Não é possível encontrar o símbolo” ou “Não é possível resolver o símbolo”?
George Harrison ficou chateado por suas letras de 'Hurdy Gurdy Man' de Donovan não terem sido usadas