老--质价比
Time Limit: 1000MS Memory limit: 65536K
题目描述
给出n件物品,每件物品有质量和价格两种属性。你要做的是按质量升序排序,若质量相同则按价格降序排序。
输入
多组输入。每组先输入一个正整数n(1<=n && n <= 100),代表有n件物品。接下来的一行有n个正整数Wi(1<= Wi && Wi <= 10000),代表每件物品的质量。再接下来的一行有n个正整数Pi(1 <= Pi && Pi <= 10000),代表每件物品的价格。
输出
对于每组数据输出n行,每行两个数Wi,Pi。顺序为题目描述所要求。
示例输入
3 1 2 2 3 2 3
示例输出
1 3 2 3 2 2
#include <stdio.h> int main() { int a,b,d,m,i,j,c[3][105],k,h; while(scanf("%d",&a)!=EOF) { for(i=0; i<2; i++) { for(j=0; j<a; j++) { scanf("%d",&c[i][j]); } } for(i=0; i<a-1; i++) { for(j=0; j<a-i-1; j++) { if(c[0][j]>c[0][j+1]) { m=c[0][j]; c[0][j]=c[0][j+1]; c[0][j+1]=m; h=c[1][j]; c[1][j]=c[1][j+1]; c[1][j+1]=h; } else if((c[0][j]==c[0][j+1])) { if(c[1][j]<c[1][j+1]) { m=c[0][j]; c[0][j]=c[0][j+1]; c[0][j+1]=m; h=c[1][j]; c[1][j]=c[1][j+1]; c[1][j+1]=h; } } } } for(i=0; i<a; i++) { printf("%d %d\n",c[0][i],c[1][i]); } } }