Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #define TRUE 1
- struct tagCar {
- int cilindrada;
- int co2lvl;
- int age;
- float imp;
- };
- int Valid(int num, int inf, int sup);
- float ImpostoCilindrada(int cm);
- float ImpostoCo2(int co2);
- float Discount(int age, float imp);
- void ShowFinal(struct tagCar car);
- int main()
- {
- struct tagCar car;
- int cmaux, ageaux, co2aux;
- float disc;
- disc = 0,0;
- car.imp = 0;
- cmaux = ageaux = co2aux = 0;
- printf("Indique a Cilindrada: ");
- scanf("%d", &cmaux);
- printf("Indique a Idade: ");
- scanf("%d", &ageaux);
- printf("Indique a quantidade de CO2: ");
- scanf("%d", &co2aux);
- if( Valid(cmaux, 0, -1) && Valid(ageaux, 0, -1) && Valid(co2aux, 0, -1) ) {
- system("cls");
- car.age = ageaux;
- car.cilindrada = cmaux;
- car.co2lvl = co2aux;
- car.imp = ImpostoCilindrada(car.cilindrada);
- car.imp += ImpostoCo2(car.co2lvl);
- disc = Discount(car.age, car.imp);
- car.imp -= disc;
- ShowFinal(car);
- }
- return 0;
- }
- int Valid(int num, int inf, int sup) {
- int aux;
- if( sup == -1 )
- return (num >= inf) ? 1:0;
- return (num >= inf && num <= sup) ? 1:0;
- }
- float ImpostoCilindrada(int cm) {
- float imp, aux;
- imp = 670,00;
- if( cm > 1250 && cm < 12250) {
- aux = cm - 1250;
- aux *= 4,25;
- imp += aux;
- }
- else if( cm >= 12250 ) {
- aux = 12250 - 1250;
- aux *= 0,90;
- imp += aux;
- }
- return imp;
- }
- float ImpostoCo2(int co2) {
- float imp;
- imp = 0,00;
- if( co2 <= 105 ) {
- imp = (float) co2*15,00;
- imp -= 1100,00;
- }
- else if( co2 <= 130 ) {
- imp = (float) co2*55,00;
- imp -= 5300,00;
- }
- else if( co2 <= 150 ) {
- imp = (float) co2*105,00;
- imp -= 11800,00;
- }
- else {
- imp = (float) co2*122,00;
- imp -= 14350,00;
- }
- return (imp > 0) ? imp:0;
- }
- float Discount(int age, float imp) {
- float disc;
- if( age <= 1 )
- disc = (imp * 10) / 100;
- else if( age <= 2 )
- disc = (imp * 20) / 100;
- else if( age <= 3 )
- disc = (imp * 28) / 100;
- else if( age <= 4 )
- disc = (imp * 35) / 100;
- else if( age <= 5 )
- disc = (imp * 43) / 100;
- else if( age <= 6 )
- disc = (imp * 52) / 100;
- else if( age <= 7 )
- disc = (imp * 60) / 100;
- else if( age <= 8 )
- disc = (imp * 65) / 100;
- else if( age <= 9 )
- disc = (imp * 70) / 100;
- else
- disc = (imp * 75) / 100;
- return disc;
- }
- void ShowFinal(struct tagCar car) {
- printf("\n\t[Carro]\n");
- printf("\n\t\tCilindrada: %d", car.cilindrada);
- printf("\n\t\tNivel CO2: %d", car.co2lvl);
- printf("\n\t\tIdade: %d", car.age);
- printf("\n\n\t\t\tTaxas a pagar: %f\n\n\n", car.imp);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement