输入电脑 cpu  内存 显卡 硬盘 光驱的价格
软后按照价格从贵到便宜输出;
利用2个数组,
一个string类型 元素为:cpu  内存 显卡 硬盘 光驱
另一个数组float  元素为所输入的价格
两个数组的下标一一对应
但是一对数组进行排序 下标就对不上了
用什么方法能解决此问题?如果不用数组

CPU ="650";
memory = "90";
DISK ="550";
如何能把以上数据进行排序?

解决方案 »

  1.   

    按照价格从贵到便宜输出
    你用int类型吧
    string好像比较不了
      

  2.   

    Directory 中用Key表示 CPU  内存 显卡 硬盘 光驱 
                  用Value 表示对应的值,然后调用自带的方法进行排序。
      

  3.   

    先声明个数据结构 ,记录数据
    public class  aaa{
     double  pricecput = 0;
     doube  pricememory = 0;
      ...
    }List<aaa> lst 中进行排序就行了。lst.Sort(iCompareOBJ)
      

  4.   

    换种做法看看,用哈希表 hastable
      

  5.   

    1.将数据存入数据库中,用order by 来取;
    2.还是存入数组两层for循环遍历比较大小来排序;
    3.还有像5楼那样!
      

  6.   

    干嘛还用两个数组呢?用Dictionary<Key,Value>多方便啊
      

  7.   

    键值对
    键:cpu 内存 显卡 硬盘 光驱
    值:cpu 内存 显卡 硬盘 光驱 的价格
      

  8.   


    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;namespace test
    {
        class Program
        {
            static void Main(string[] args)
            {
                Dictionary<string, Single> dic = new Dictionary<string, float>();
                dic.Add("CPU", 460);
                dic.Add("内存", 130);
                dic.Add("显卡", 720);
                dic.Add("硬盘", 680);
                dic.Add("光驱", 90);
                var result = from pairs in dic orderby pairs.Value select pairs;                        foreach (KeyValuePair<string, Single> pair in result)
                {
                    Console.WriteLine("{0}\t---\t{1}", pair.Key, pair.Value);
                }            Console.Read();
            }
        }
    }
      

  9.   

    楼主,按你的方法的话,推荐用while循环来做,外面定义2个int i(被排序的下标),j(目标下标)。在排序算法正确,要交换数据的时候同时交换2个数组中符合条件的元素,即swap(ary1[i],ary1[j])的同时,swap(ary2[i],ary2[j])。循环条件的判断就写i<ary1.Count。至于那个j是多少,和你的排序算法有关。
      

  10.   

    噢,对了字符的排序也一样,你要先按照记录顺序对应好,每一次比较价格时,如果有相应的改动,你就要把对应的字符也按顺序输出,其实你用两个数组的思路也正确,可能就是你排序价格的时候忘记了你的字符也是要进行排序的,就是说如果你对比出CPU的价格最大,那么在修改CPU价格下标的同时,请吧CPU字符的下表也一并改掉