求一个打印算法!请好心人帮帮忙!
是一个打印条形码的程序,要求如下:
比如:条码总数=40 列数=4 按行打印
1 11 21 31
2 12 22 32
3 13 23 33
4 14 24 34
5 15 25 35
6 16 26 36
7 17 27 37
8 18 28 38
9 19 29 39
10 20 30 40
实在是搞不好了 请帮我想一下 关键是要求 先打1 再打11 接着打21 再打31 然后换行 打下一行。请大家帮我!
[解决办法]
先在内存中对数据进行排好
然后进行输出打印
[解决办法]
随便找本数据结构的书看看
[解决办法]
不知道是不是偶理解错了,是这样吗?
考虑了一些特殊情况,不知道是否周到.
#include <iostream>
using namespace std;
void MyPrint(unsigned Count,unsigned Col)
{
int Row=(Count-1)/Col+1;
if(Row <=0 || Count <Col) //Count <Col的情况
{
cout < < "oops! " < < endl;
return;
}
if((Col-1)*Row+1 > Count) //有些分隔本来就做不到,如36分成7列.
{
cout < < "不能实现 " < < Count < < "分成 " < < Col < < "列打针 " < < endl;
return;
}
for(int r=0;r <Row; r++)
{
for(int c=0; c <Col; c++)
{
int v=r+c*Row+1;
if(v <=Count) cout < <v < < '\t ';
}
cout < <endl;
}
}
int main(int argc, char* argv[])
{
MyPrint(40,4);
system( "pause ");
return 0;
}
//---------------------------------------