Executando verificação de segurança...
2

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.

Carregando publicação patrocinada...
1

Boa noite, obrigado por responder.

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".

As variáveis declaradas "não existem" porquê são chamadas antes de main?

Além disso, como que bill_after_tax (e tax/tip_decimal) sabe que bill terá os valores de bill_amount? Seria por causa do float half(float bill, float tax, int tip)?

2

As variáveis declaradas "não existem" porquê são chamadas antes de main?

Não, as variáveis não existem porque elas não foram declaradas neste escopo.

float half(float bill, float tax, int tip)
{
    float tax_decimal = tax_percent / 100.0; // deveria ser "tax" e não "tax_percent"
    ...

No código acima, você estaria tentando tirar um valor de uma variável chamada "tax_percent", mas no escopo ela não existe. O que existe, no entanto, é a variável chamada "tax".


Além disso, como que bill_after_tax (e tax/tip_decimal) sabe que bill terá os valores de bill_amount? Seria por causa do float half(float bill, float tax, int tip)?

Como você está criando a função e nomeando os parâmetros nesta ordem (float bill, float tax, int tip), sempre que você chamar a função, os parâmetros serão gravados nesta ordem.
Por exemplo:

float aaa = 50.0;
float bbb = 10.0;
int ccc = 15;

half(aaa, bbb, ccc);

Como mostra o exemplo acima, os valores recebidos pela função independem dos nomes dados as variáveis utilizada nas chamadas.


Espero ter ajudado

2

Não, as variáveis não existem porque elas não foram declaradas neste escopo.

Agora eu entendi perfeitamente

Espero ter ajudado

Ajudou e muito, muito obrigado.