输入一组数据,将它们按照从大到小的顺序输出,并给出每个数据所对应的原始输入顺序(利用结构类型,题目来源:C语言程序设计第三版)
#include<stdio.h>
struct data//定义结构体数据
{
double m;
int o;
};
int main()
{
struct data a[100];
int i,n,j,k,w;
double t;
printf("请输入需要处理的数据个数:\n");
scanf("%d",&n);//输入处理数据个数
printf("请输入数据:\n");
for(i=0;i<n;i++)
{
scanf("%lf",&a[i].m);
a[i].o=i+1;//令处理数据个数的顺序
}
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
if(a[j].m>a[k].m)
{
t=a[j].m;
a[j].m=a[k].m;
a[k].m=t;
w=a[j].o;
a[j].o=a[k].o;
a[k].o=w;
}
}
for(j=0;j<n;j++)
printf("%4.2lf %d\n",a[j].m,a[j].o);
return 0;
}