回 帖 发 新 帖 刷新版面

主题:数据排列问题 好心人帮帮我

阐述起来比较复杂。我刚找的工作是编程,印刷,我是排号的,比如充值卡号
500万个序列号,每个13位,原始数据是按顺序排列的。版面如下
  1    2    3    4    5    501  502  503  504  505
  6    7    8    9   10    506  507  508  509  510
1001 1002 1003 1004  1005 1501 1502 1503 1504  1505
1006 1007 1008 1009  1010 1506 1507 1508 1509  1510
2001 2002 2003 2004  2005 2501 2502 2503 2504  2505
2006 2007 2008 2009  2010 2506 2507 2508 2509  2510
3001 3002 3003 3004  3005 3501 3502 3503 3504  3505
3006 3007 3008 3009  3010 3506 3507 3508 3509  3510
上面是第一页,第二页是
11  12  13  14  15      511  512  513  514  515 
16  17  18  19  20      516  517  518  519  520
.........
.........
.........
.........
.........
这样50张是一组,为的是门切时让10个票一小页,50页一组,上下连号。
一大组就是7000个号,我们排列时就要一个纵向就行
1                                  1
2                                  2
3                                  3
4                                  4
5                                  5
501      然后原始数据也是单列的    6
502                                .
503                                .
504                                .
505
1001
1002
...
...
..
...
哪位好心人帮帮 看看这个排列怎么编啊~~急~~

回复列表 (共8个回复)

沙发

果然很复杂,还真没看懂

板凳


仔细的再看看吧,这么吧
7000为一组,分为14个500,先取每500的前五个数,排列,然后每500再取下五个数排列,然后再每500取5个,一直到7000个排完,再掉入下7000个数,再分为14个500,依旧这么取。能理解吗

3 楼

门切时50个一组,然后是从左到右,从上到下这么叠?
你可以这样想:
一行分两块,前面的数是5个连续的,后面的也是5个,不过后面比前面整大500;
两行为一小组,一页共4组,每组之间差1000;
到下一页时,将基数增10,回到上面接着排。

4 楼

不过应该是4000条数据为一组吧,一页80条,50页一组。。。50*80=4000啊~~~~
咋会是7000呢?

5 楼


我少打了,一页140个数

6 楼

你是要数组重排?如果重排有什么要求?显示又有什么要求?还是只显示并打印数字到屏幕?那要怎么显示?连排成什么样都不清楚?原始数据怎样也不清楚?.........最后加在一起还是不清楚

7 楼

[code=c]
// 先定义一个输出5个数的函数
inline void outgrp(FILE*pf, __int64 *data)
{
    for (int i = 0; i<5; ++i)
        fprintf(pf,"%I64d\n",data[i]);
}
[/code]
1、打开输入文件fpi,打开输出文件fpo;
2、以7000个数为一组,读入到__int64 i64Buff[7000]中。
3、输出一组数据:
[code=c]
for (int k = 0; k < 510; k+=10)       // 页循环
for (int j = k; j < k+7000; k+=500) // 组循环
for (int i = j; i < j+10; i+=5)           // 组内循环
{
    outgrp(fpo,&i64Buff[i]);
    outgrp(fpo,&i64Buff[i+500]);
}
[/code]

8 楼

[quote]果然很复杂,还真没看懂[/quote]
呵呵.....

我来回复

您尚未登录,请登录后再回复。点此登录或注册