楼主最近还看过
一、思路:
1、数据定义
定义4个区域
A、B 分别存储原始未排序前的数据;其中 A 存储设备序号,B 存储对应的数值
C、D 分别存储排序后的数据;其中 C 存储排序后设备序号,D 存储排序后对应的数值2、当要排序时:
2.1 将A 区域的值传送到 C 区域,将 B 区域的值传送到 D 区域
2.2 用冒泡法比较 D 区域相邻两个数据的大小,如果需要调换位置,在调换时同进调换C 区域相邻两个序号
这样最后会在 C 区域中得到你想要的序号。
可以参考:
http://www.ad.siemens.com.cn/service/answer/solved_259564_1076.html
二、程序可以参考:
http://www.ad.siemens.com.cn/service/answer/solved_213777_1076.html
char data[4]={"1号设备","2号设备","3号设备","4号设备"};
int data1[4]={23,32,98,12};
for(a=0,a<4,a++)
{
for(b=a,b<4,b++)
{
if(data1[a]>data1[b])
{
{
d=data1[a];
c=data[a];
data1[a]=data1[b];
data[a]=data[b];
data1[b]=d;
data[b]=c;
}
else
{
data1[a]=data1[a];
data[a]=data[a];
}
}
}
}
printf("%d,%c",data1[0],data[0])
差不多可以输出你要的结果的,同时上述代码还根据数据大小进行了排序,对应的设备号也会排序。