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>intmain(){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);return0;}