有一个浮点型数组 {1.1, 2.2, 3.3, 1.1, 1.1, 3.3}
怎样统计相同的数值出现过的次数?
如: 1.1  出现过3次
    2.2  出现过1次
    3.3  出现过2次

解决方案 »

  1.   

    放到一个HashTable表里如果有重复的就加1!
      

  2.   

    listhome(不想睡)(好好学习) 
    谢谢你的回复,这个方法我想过,虽然可以解决问题,但我想求得一个更好的算法
      

  3.   

    float[] arrayF = {1.1f, 2.2f, 3.3f, 1.1f, 1.1f, 3.3f};
    float temp;
    string result = "|";
    int timeStart;
    int timeEnd;
    int time;
    for(int i=0; i<arrayF.Length; i++)
    {
    temp = arrayF[i];
    if(result.IndexOf("|"+temp+",") > -1)
    {
    timeStart = result.IndexOf(",",result.IndexOf("|"+temp+",")+1)+1;
    timeEnd = result.IndexOf("|",result.IndexOf("|"+temp+",")+1);
    time = int.Parse(result.Substring(timeStart,timeEnd-timeStart));
    time++;
    result = result.Substring(0,timeStart)+ time.ToString() +result.Substring(timeEnd);
    }
    else
    {
    result += temp.ToString() + ",1|";
    }
    }
    Response.Write(result);
      

  4.   

    float[] arrayF = {1.1f, 2.2f, 3.3f, 1.1f, 1.1f, 3.3f};
    float temp;
    string result = "|";
    int timeStart;
    int timeEnd;
    int time;
    for(int i=0; i<arrayF.Length; i++)
    {
    temp = arrayF[i];
    if(result.IndexOf("|"+temp+",") > -1)
    {
    timeStart = result.IndexOf(",",result.IndexOf("|"+temp+",")+1)+1;
    timeEnd = result.IndexOf("|",result.IndexOf("|"+temp+",")+1);
    time = int.Parse(result.Substring(timeStart,timeEnd-timeStart));
    time++;
    result = result.Substring(0,timeStart)+ time.ToString() +result.Substring(timeEnd);
    }
    else
    {
    result += temp.ToString() + ",1|";
    }
    }
    result = result.Substring(1,result.Length-2);
    string[] arr = result.Split('|');
    for(int j=0; j<arr.Length; j++)
    {
    Response.Write(arr[j].Split(',')[0]);
    Response.Write("---");
    Response.Write(arr[j].Split(',')[1]);
    Response.Write("次");
    Response.Write("<br>");
    }
      

  5.   

    float[] myarray = {1.1F,2.2F,3.3F,1.1F,1.1F,3.3F,2.2F};
    int num = 0;
    int i,j,k;
    for(i=0;i<myarray.Length-1;i++)
    {
    num = 0;
    bool same = false;
    for(k=i-1;k>=0;k--)
    {
    if(myarray[k] == myarray[i])
    {
    same = true;
    break;
    }
    }
    if(!same)
    {
    for(j=i;j<myarray.Length;j++)
    {
    if(myarray[i] == myarray[j])
    {
    num++;
    }
    }
    Console.Write(myarray[i].ToString());
    Console.Write("  ");
    Console.WriteLine(num.ToString()+"次");
    }
    }