Podemos assumir sempre que todas as frutas estão separadas por um único espaço e não há espaços antes nem depois da linha a ser lida.
Com isso em mente, o problema se torna muito mais fácil para linguagens de baixo nível, já que basta contar quantos espaços existem na linha inteira. Para linguagens de alto nível, podemos contar o número de palavras normalmente separando-as pelo caractere do espaço.
#include <string.h>
#include <stdio.h>
int main(){
char *pos;
int N, frutas;
char linha[10000];
double V, pesoPorDia, gastoPorDia;
scanf("%d\n", &N);
pesoPorDia = 0.0;
gastoPorDia = 0.0;
for(int i = 1; i <= N; ++i){
scanf("%lf\n", &V);
scanf("%[^\n]", &linha);
frutas = 1;
pos = strchr(linha, ' ');
while(pos != NULL){
++frutas;
pos = strchr(pos + 1, ' ');
}
printf("day %d: %d kg\n", i, frutas);
pesoPorDia += frutas;
gastoPorDia += V;
}
pesoPorDia /= N;
gastoPorDia /= N;
printf("%.2lf kg by day\nR$ %.2lf by day\n", pesoPorDia, gastoPorDia);
return 0;
}
var input = require('fs').readFileSync('/dev/stdin', 'utf8');
var lines = input.split('\n');
let pesoPorDia = 0.0, gastoPorDia = 0.0;
let N = parseInt(lines.shift().trim());
for(let i = 1; i <= N; ++i){
let V = parseFloat(lines.shift().trim());
let frutas = lines.shift().trim().split(' ').length;
console.log(`day ${i}: ${frutas} kg`);
pesoPorDia += frutas;
gastoPorDia += V;
}
pesoPorDia /= N;
gastoPorDia /= N;
console.log(`${pesoPorDia.toFixed(2)} kg by day`);
console.log(`R$ ${gastoPorDia.toFixed(2)} by day`);
pesoPorDia = 0.0
gastoPorDia = 0.0
N = int(input())
for i in range(1, N + 1):
V = float(input())
frutas = len(input().strip().split(' '))
print(f"day {i}: {frutas} kg")
pesoPorDia += frutas
gastoPorDia += V
pesoPorDia /= N
gastoPorDia /= N
print(f"{pesoPorDia:.2f} kg by day")
print(f"R$ {gastoPorDia:.2f} by day")