//Problem Practice A - Ride my bicycle #include #include struct ratios { int front, back; double ratio; }; void sort(ratios *A, int n) { int i,j; ratios node; double key; for(i=1;i=0 && A[j].ratio>key){ A[j+1]=A[j]; j--; } A[j+1]=node; } } void main() { int chain[4], back[8]; int i,j,k; ratios gears[22]; //get teeth for(i=1;i<4;i++) cin>>chain[i]; for(i=1;i<8;i++) cin>>back[i]; //compute ratios k=0; for(i=1;i<4;i++) for(j=1;j<8;j++){ gears[k].front=i; gears[k].back=j; gears[k].ratio = (double)chain[i]/back[j]; k++; } //sort on ratios sort(gears,21); //print results for(i=0;i<21;i++) printf("%.2f %d %d\n",gears[i].ratio, gears[i].front, gears[i].back); }