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>intmain(){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);return0;}
#include<iostream>#include<iomanip>usingnamespace std;intmain(){ string nome;int media, pessoas, distancia; media =0, pessoas =0;while(getline(cin, nome)){ cin >> distancia;cin.ignore(); media += distancia;++pessoas; } cout <<setprecision(1) << fixed << (double) media/pessoas << endl;return0;}
var input =require('fs').readFileSync('/dev/stdin','utf8');var lines =input.split('\n');let media =lines.reduce((acc, cur, i) => (i %2) ? acc +parseInt(cur) : acc,0);let resultado = media/(lines.length/2);console.log(resultado.toFixed(1));
media, pessoas =0,0whileTrue:try: nome =input() distancia =int(input()) media += distancia pessoas +=1exceptEOFError:breakresultado = media/pessoasprint(f"{resultado:.1f}")