
paulo1205
(usa Ubuntu)
Enviado em 27/02/2020 - 21:13h
Keghtlezt escreveu:
Tenha uma dúvida, preciso fazer um pequeno programa que leia n quantidade de valores e uma mesma linha com apenas um ENTER. Dado esses valores eu conseguirei fazer condicionais para chegar em meu resultado final. Teria eu como fazer essa leitura sem saber a quantidade de valores iniciais? Logo após teria como fazer cálculos desses diferentes valores e até mesmo usá-los em condições if-else?(No momento estou tentando com string mas não consigo identificar cada caractere da mesma) Desde já fico grato por qualquer ajuda.
OBS: Os valores são diferenciados com espaçamento entre elas.
Exemplo de Entradas
17 3 5 2 1
22 4 3
12 5 6 1 3 2 1
...
Seria interessante você indicar, numa pergunta como essa, se você se refere a C ou a C++, pois as soluções são diferentes em cada uma dessas linguagens.
Também — e, por favor, não me leve a mal —, a forma como você redigiu a pergunta ficou um tanto confusa. Por exemplo, eu não consegui ter certeza absoluta de se a linha limita a quantidade de valores ou se, de alguma forma (como é típico em sites de problemas de informática como, por exemplo, o SPOJ), você lê um primeiro número
n e depois lê
n números diferentes, que não necessariamente obedecem limites de linhas. Por mais que a primeira opção me pareça ser o que você quer, isso não fica inequivocamente claro, e também porque não é a forma mais usual (e, inclusive, não é o que faz a solução já mostrada, acima, pelo colega Cmistry).
Se, de fato, você quer limitar por linha, a sugestão é que você leia a linha como uma
string, e depois extraia as partes dessa
string. Em C, você pode usar
fgets() (ou, num sistema POSIX,
getline()) seguida por um laço de repetição que faça várias chamadas a
sscanf(), até se esgotarem os valores. Em C++, você pode ler a linha com
std::getline(), mover a
string lida para um objeto do tipo
std::istringstream, e aplicar esse objeto na solução mostrada pelo Cmistry, em lugar de
std::cin.
... “Principium sapientiae timor Domini, et scientia sanctorum prudentia.” (Proverbia 9:10)