比如一天8小时,我每个小时都收到很多数,比如9点内收到10次数,21,30,40...39。10点又收到20个数,51,40,66...22.没个小时的个数是随机的,我想把每个小时最后那个数取出来,比如9点就是39.10点就是22,依次类推,请问该怎么办啊!

解决方案 »

  1.   

    方法太多了
    最方便的就是使用容器
    用Vector,建立8个容器vector<int> vec,每小时分配一个,每次都把数字push_back进去vec.end()就能获取最后一个数
      

  2.   

    用个结构体就好, 每次把新接收到的数据放置进去,覆盖之前的struct _LastData
    {
    bool bValid; //有效标志
    int iData;   //数据
    }LastData[24]; //0~23小时最后数据//放入接收到的数据iVal 和接收到的时刻小时iHour
    BOOL PutVal(int iVal, int iHour)
    {
    if(iHour >=0 && iHour < 24)//0~24小时内
    {
    LastData[iHour].iData = iVal; //存入数据
    LastData[iHour].bValid = true; //置有效标志
    return TRUE;
    }
    return FALSE;
    }
      

  3.   

    tiger9991 你好 你说的方法有没简单的例子啊!
      

  4.   

    #include <windows.h>
    #include <iostream>
    #include <vector>
    using namespace std;
    int Func(int nInput)
    {
    int i = 0;
    SYSTEMTIME st; int nHourArray[] = {8, 9, 10, 11, 12, 13, 14, 15};
    int nArrayLength = sizeof(nHourArray) / sizeof(int);
    vector< vector<int> > vecHour(nArrayLength); GetSystemTime(&st); for (i = 0; i < nArrayLength; i++)
    {
    if (st.wHour == nHourArray[i])
    {
    vecHour[i].push_back(nInput);
    }
    } for (i = 0; i < nArrayLength; i++)
    {
    cout << "Hour=" << nHourArray[i] << "The last number=" << vecHour[i].back();
    } return 0;
    }