帮做道题,用VC++.

来源:百度知道 编辑:UC知道 时间:2024/09/21 16:38:03
读输入文件(每行一个数字),按由小到大顺序进行排序,将结果输出到另一个文件中,输入文件名:in.txt.
一定要能做!!!拜谢!!!!

#include <stdio.h>
#include <stdlib.h>

struct Value
{
int a,b;
};

Value value[20];

int cmp(const void *a, const void *b)
{
double v1,v2;
Value *_a = (Value *)a;
Value *_b = (Value *)b;
v1 = _a->a * 1.0 / _a->b;
v2 = _b->a * 1.0 / _b->b;
return (v1 - v2) > 0.0;
}

int main()
{
int j,i = 0;
while(scanf("%d%*c%d",&value[i].a,&value[i].b)!=EOF)
i++;
qsort(value,i, sizeof(value[0]), cmp);
for(j = 0; j < i; ++j) printf("%d/%d\n",value[j].a,value[j].b);
}

卓天赐 de 回答已经很好了