Skip to main content

Linguagem C_Exercicios Propostos Solucao_13

Page 1

Linguagem C 25.ª Edição Atualizada e Aumentada FCA Editora (c) 2025

13

EXERCÍCIOS PROPOSTOS – SOLUÇÃO 13.1 13.1.1

Apresentam-se duas possíveis soluções para a macro: 6: #define Val_Iva(preco) 7: 8:

(((preco)<100) ? \ ((preco)*TAXA_IVA1/100.0) : \ ((preco)*TAXA_IVA2/100.0))

10: #define Val_Iva_Alt(preco) \ 11: ((preco)*(((preco)<100) ? TAXA_IVA1 : TAXA_IVA2)/100.0) 1: #include <stdio.h> 2: 3: #define TAXA_IVA1 5 4: #define TAXA_IVA2 23 5: 6: #define Val_Iva(preco) (((preco)<100) ? \ 7: ((preco)*TAXA_IVA1/100.0) : \ 8: ((preco)*TAXA_IVA2/100.0)) 9: 10: #define Val_Iva_Alt(preco) \ 11: ((preco)*(((preco)<100) ? TAXA_IVA1 : TAXA_IVA2)/100.0) 12: 13: int main(void) 14: { 15: int preco = 90; 16: double preco2 = 1000; 17: 18: printf("Preco=%d Iva=%.2lf\n", preco, Val_Iva(preco)); 19: printf("Preco=%d Iva=%.2lf\n", preco, Val_Iva_Alt(preco)); 20: 21: printf("Preco=%d Iva=%.2f\n", preco, Val_Iva(preco2)); 22: printf("Preco=%d Iva=%.2f\n", preco, Val_Iva_Alt(preco2)); 23: 24: return 0; 25: }

PROG1320.C $ prog1320 Preco=90 Iva=4.50 Preco=90 Iva=4.50 Preco=90 Iva=230.00 Preco=90 Iva=230.00

13.1.2

Note que o valor de x nem sequer está ainda definido. Mas isto não nos importa, pois apenas queremos ver a expansão realizada para a macro (consideremos a primeira versão apresentada em 13.1.1): int main(void) { int x, y=2;

© FCA

1


Turn static files into dynamic content formats.

Create a flipbook