//William Leeb //Dalton School (7128) //New York NY Senior Division 3 #include #include #include #include #include #include void main() { char repeat; double array[5]; double COST, ZONE; int n, Z1, Z2, COUNT; do { COST=0; //running total of cost ZONE=0; //additional cost per zone Z1=0; Z2=0; COUNT=0; //number of zones cout<<"ENTER DATA: "; n=1; while (n<=5) { cin>>array[n]; n+=1; } //determining class of mail: //regular post card? if ((array[1]>=3.5)&&(array[1]<=4.25)&&(array[2]>=3.5) &&(array[2]<=6.0)&&(array[3]>=0.007)&&(array[3]<=0.016)) { COST=0.2; ZONE=0.03; } //large post card? if ((array[1]>4.25)&&(array[1]<6.0)&&(array[2]>6.0) &&(array[2]<11.5)&&(array[3]>=0.007)&&(array[3]<=0.016)) { COST=0.37; ZONE=0.03; } //envelope? if ((array[1]>=3.5)&&(array[1]<=6.125)&&(array[2]>=5.0) &&(array[2]<=11.5)&&(array[3]>0.016)&&(array[3]<0.25)) { COST=0.37; ZONE=0.04; } //large envelope? if ((array[1]>6.125)&&(array[1]<24.0)&&(array[2]>=11.0) &&(array[2]<=18.0)&&(array[3]>=0.25)&&(array[3]<=0.5)) { COST=0.60; ZONE=0.05; } //package? if (((array[1]>=24)||(array[2]>18)||(array[3]>0.5)) &&(array[1]+(2*array[2])+(2*array[3])<=84)) { COST=2.95; ZONE=0.25; } //large package? if ((array[1]+(2*array[2])+(2*array[3])>84) &&(array[1]+(2*array[2])+(2*array[3])<=130)) { COST=3.95; ZONE=0.35; } if (COST==0.0) { cout<<"UNMAILABLE"; } else { //what zone is Z1? if ((array[4]>=1)&&(array[1]<=6999)) { Z1=1; } if ((array[4]>=7000)&&(array[4]<=19999)) { Z1=2; } if ((array[4]>=20000)&&(array[4]<=35999)) { Z1=3; } if ((array[4]>=36000)&&(array[4]<=62999)) { Z1=4; } if ((array[4]>=63000)&&(array[4]<=84999)) { Z1=5; } if ((array[4]>=85000)&&(array[4]<=99999)) { Z1=6; } //what is Z2? if ((array[5]>=1)&&(array[5]<=6999)) { Z2=1; } if ((array[5]>=7000)&&(array[5]<=19999)) { Z2=2; } if ((array[5]>=20000)&&(array[5]<=35999)) { Z2=3; } if ((array[5]>=36000)&&(array[5]<=62999)) { Z2=4; } if ((array[5]>=63000)&&(array[5]<=84999)) { Z2=5; } if ((array[5]>=85000)&&(array[5]<=99999)) { Z2=6; } COUNT=abs(Z1-Z2); COST=COST+(COUNT*ZONE); cout<>repeat; } while (repeat=='y');