Eae, tudo bem ?
O erro da foto estava sendo causado por causa dos diferentes nomes colocados na declaração do parâmetro e na utilização de uma variável que "não existe".
Provavelmente era algo assim:
float half(float bill, float tax, int tip)
{
float tax_decimal = tax_percent / 100.0; // deveria ser "tax" e não "tax_percent"
...
E em relação a sua dúvida:
Não há problema em fazer a declaração da função com parâmetros de nomes diferentes desde que eles tenham o mesmo tipo e que sejam utilizados os nomes certos no escopo da função.
Então, a única coisa que importa para o compilador é que o formato seja (float, float, int), pouco importando se os parâmetros tenham diferentes nomes. Inclusive, se você mantivesse os nomes "bill, tax e tip" na linha 19 o código ainda funcionaria desde que, é claro, você também mudasse a chamada destes parâmetros dentro da função.
Ficaria assim:
float half(float bill, float tax, int tip) {
float tax_decimal = tax / 100.0;
float tip_decimal = tip / 100.0;
float bill_after_tax = bill * tax_decimal + bill;
float bill_after_tax_tip = bill_after_tax * tip_decimal + bill_after_tax;
float invoice_split = bill_after_tax_tip / 2;
return invoice_split;
}
Qualquer dúvida é só chamar.