Cerco di spiegarti meglio osa ti sta dicendo oregon
In questa riga di codice
printf( "Il guadagno settimanale del 9% sul lordo delle vendite più 200 euro di fisso settimanale ammonta a:\n%.3f euro\n", guadagno );
compaiono 2 caratteri di controllo %, il primo nella prima parte 9% ed il secondo in %.3f, quindi il compilatore si attende 2 parametri ma il parametro passato è uno solo: guadagno.
Per evitare che il primo % venga considerato un carattere di controllo ma sia invece trattato come testo semplice devi aggiungere un secondo %
ovvero
"Il guadagno settimanale del 9%% sul lordo delle vendite più 200 euro di fisso settimanale ammonta a:\n%.3f euro\n", guadagno );
in questo caso verrà considerato come stringa e non come carattere di controllo, con conseguente result 0 (nessun errore)