| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1690 人关注过本帖, 1 人收藏
标题:不知道咋概括,自己看吧。
取消只看楼主 加入收藏
纯蓝之刃
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:76
帖 子:566
专家分:3690
注 册:2019-7-29
结帖率:93.75%
收藏(1)
已结贴  问题点数:100 回复次数:1 
不知道咋概括,自己看吧。
程序代码:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<math.h>
#define MAX 10

int  names_io(const void *a,const void *b);

struct DATA
{
    int dot;
    int value;
};

int main()
{
    int i=0;
    struct DATA data[MAX]= {0,0};
    int olddot[3]={0},check[3]={0};

    srand(time(0));

    while(1)
    {
        for(i=0; i<MAX; i++)            //数据一直在变化
        {
            data[i].dot=i;
            data[i].value=rand()%30;
        }

        qsort(&data,MAX,sizeof(struct DATA),names_io);  //数据从大到小排序

        /***************这部分不知道如何处理*********************/
        for(i=0; i<3; i++)
        {

            if(olddot[i]==data[i].dot)
            {
                check[i]++;
            }
            else
            {
                olddot[i]=data[i].dot;
                check[i]=0;
            }

            if(check[i]>=10)
            {
                /*********************
                    程序处理部分
                **********************/
                check[i]=0;
            }
        }
        /************************************************/
    }

    return 0;
}

int  names_io(const void *a,const void *b)
{

    float rs;

    rs=(*( struct DATA *)b).value-(*( struct DATA *)a).value;
    if(fabs(rs)<=0.001)
        return 0;
    else
        return rs>0?1:-1;
}


现在有10个数据点及相对应的数据,然后使用函数按数据值大小进行排序。现在取排序后最大的三个点的点号与上次得到的最大的三个点的点号进行比较,如果新的数据的三个点号中某个点的值和上一次的三个点中某个点的点号一样,就分别check记录一次,如果连续10次最大的三个点号都有这个点,那么将check清零进入我的程序处理部分。
A        B        C

a    b    c    d    e
就像这样有三个槽,第一次最大的三个值得点号填进去,第二次判断a b c三个点是否是上次的点号,如果是,就check加一,如果不是,就把ABC中abc不存在的点号清除,换成新的点号,并将check清零计数。

[此贴子已经被作者于2020-3-4 20:32编辑过]

搜索更多相关主题的帖子: check DATA 数据 struct int 
2020-03-04 20:12
纯蓝之刃
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:76
帖 子:566
专家分:3690
注 册:2019-7-29
收藏
得分:0 
回复 2楼 forever74
字面上,初始化数组得带花括号。
另外,一会儿叫olddot一会儿叫olddata是头晕吧。

这个是疏忽,这个程序只是起到个环境的作用,具体是星号部分的问题。

我现只是提供了check、olddot用来表述我所存在的问题,具体是不是[3]是无所谓的,只要能解决我的问题就行。
万一一次是a b c,下次是c a e你要check到哪儿啊?

这个就是我所需要问的,我需要得到一个点,连续10次都存在在a b c中。如果多于1个点连续10次在a b c中,那就取第10次为最大的值的点。

[此贴子已经被作者于2020-3-4 20:45编辑过]


一沙一世界,一花一天堂。无限掌中置,刹那成永恒。
2020-03-04 20:38
快速回复:不知道咋概括,自己看吧。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015707 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved