1216 - Getline One

Vamos aprender outras maneiras de conseguirmos ler uma linha inteira de uma vez.

Descrição

Solução

Para algumas linguagens, tal problema é trivial. Mas até em Python tem algumas diferenças, um pensamento fora da caixa, quando normalmente o programa inteiro fica dentro do while.

Na linguagem C, é possível usar o scanf para ler linhas inteiras usando a máscara apresentada no código abaixo.

Na linguagem C++, é possível usar o getline, mas esse comando usa o mesmo buffer que o cin, logo, toda vez que se usa o comando de cin, é necessário após isso dar o comando cin.ignore() para garantir que o getline sempre irá funcionar.

Na linguagem JavaScript, podemos fazer um reduce somando apenas os elementos nas posições ímpares e ignorar completamente os nomes.

#include <stdio.h>

int main(){
    char nome[100];
    int media, pessoas, distancia;

    media = 0, pessoas = 0;
    while(scanf("%[^\n]", &nome) != EOF){
        scanf("%d\n", &distancia);

        media += distancia;
        ++pessoas;
    }

    printf("%.1lf\n", (double) media/pessoas);

    return 0;
}

Last updated