社区
C++ 语言
帖子详情
求C++高手,帮我解读一个关于车厢调度的程序,谢谢
wujing198198
2012-05-16 02:53:55
求C++高手,帮我解读一个关于车厢调度的程序,谢谢
...全文
111
7
打赏
收藏
求C++高手,帮我解读一个关于车厢调度的程序,谢谢
求C++高手,帮我解读一个关于车厢调度的程序,谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
w346581442
2012-05-16
打赏
举报
回复
0&&z//一直为假
wujing198198
2012-05-16
打赏
举报
回复
我是想接着给问题的呢,请教下下面这段程序的思想是什么
void operation(stack *s)
{
int a[60],i,j,k,m,n,l,z,y,flag1=1,flag2=1;
char ch;
cout<<"请输入车厢数(2-30)\n";
while(flag1)/*此循环是输入一个正确的车厢数假如在此输入的是4*/
{
cin>>i;
if(2>i&&i>30)
cout<<"输入错误请重新输入\n";
else
flag1=0;
}
flag1=1;
for(j=0;j<i*2;j++)/*对数组初始化为10101010,即首组输出的数据为1234*/
{
a[j++]=1;
a[j]=0;
}
while(flag1)/*总循环,输出所有满足条件的车厢调度*/
{
l=1,k=0;
for(j=0;j<i*2;j++)/*输出车厢调度*/
{
if(a[j]==1)
push(s,l++);
else if(a[j]==0)
pop(s);
}
cout<<"\n";
for(j=0;j<i;j++)/*判断是否已经满足结束条件,结束条件为11110000*/
if(a[j]==1)
k++;
if(k==i)
flag1=0;
a[i*2-1]++;/*尾数自加1*/
while(flag2&&flag1)
{
z=1,m=0,n=0,y=1;
for(j=i*2-1;j>=0&&z;j--)/*假如自加之后是2的话,前一位自加1,本位为0*/
if(a[j]!=2)
z=0;
else
{
a[j]=0;
a[j-1]++;
}
for(j=0;j<i*2&&y;j++)/*检验新的组合是否满足需求*/
{
if(a[j]==1)
m++;
else if(a[j]==0)
n++;
else
cout<<"错误\n";
if(n>m)
y=0;/*判断输出的时候栈是否为空,比如11000110*/
}
if(m==i&&n==i&&a[0]==1&&a[i*2-1]==0&&y==1)
flag2=0;
else
a[i*2-1]++;
}
flag2=1;
}[Quote=引用 4 楼 的回复:]
楼主发帖请人解难,可是就不说什么问题。黑色幽默了吧
[/Quote]
wujing198198
2012-05-16
打赏
举报
回复
void operation(stack *s)
{
int a[60],i,j,k,m,n,l,z,y,flag1=1,flag2=1;
char ch;
cout<<"请输入车厢数(2-30)\n";
while(flag1)/*此循环是输入一个正确的车厢数假如在此输入的是4*/
{
cin>>i;
if(2>i&&i>30)
cout<<"输入错误请重新输入\n";
else
flag1=0;
}
flag1=1;
for(j=0;j<i*2;j++)/*对数组初始化为10101010,即首组输出的数据为1234*/
{
a[j++]=1;
a[j]=0;
}
while(flag1)/*总循环,输出所有满足条件的车厢调度*/
{
l=1,k=0;
for(j=0;j<i*2;j++)/*输出车厢调度*/
{
if(a[j]==1)
push(s,l++);
else if(a[j]==0)
pop(s);
}
cout<<"\n";
for(j=0;j<i;j++)/*判断是否已经满足结束条件,结束条件为11110000*/
if(a[j]==1)
k++;
if(k==i)
flag1=0;
a[i*2-1]++;/*尾数自加1*/
while(flag2&&flag1)
{
z=1,m=0,n=0,y=1;
for(j=i*2-1;j>=0&&z;j--)/*假如自加之后是2的话,前一位自加1,本位为0*/
if(a[j]!=2)
z=0;
else
{
a[j]=0;
a[j-1]++;
}
for(j=0;j<i*2&&y;j++)/*检验新的组合是否满足需求*/
{
if(a[j]==1)
m++;
else if(a[j]==0)
n++;
else
cout<<"错误\n";
if(n>m)
y=0;/*判断输出的时候栈是否为空,比如11000110*/
}
if(m==i&&n==i&&a[0]==1&&a[i*2-1]==0&&y==1)
flag2=0;
else
a[i*2-1]++;
}
flag2=1;
}
这段程序的思想是什么
[Quote=引用 2 楼 的回复:]
解读是个什么意思 你把关键算法贴出来
[/Quote]
W170532934
2012-05-16
打赏
举报
回复
楼主发帖请人解难,可是就不说什么问题。黑色幽默了吧
wujing198198
2012-05-16
打赏
举报
回复
void operation(stack *s)
{
int a[60],i,j,k,m,n,l,z,y,flag1=1,flag2=1;
char ch;
cout<<"请输入车厢数(2-30)\n";
while(flag1)/*此循环是输入一个正确的车厢数假如在此输入的是4*/
{
cin>>i;
if(2>i&&i>30)
cout<<"输入错误请重新输入\n";
else
flag1=0;
}
flag1=1;
for(j=0;j<i*2;j++)/*对数组初始化为10101010,即首组输出的数据为1234*/
{
a[j++]=1;
a[j]=0;
}
while(flag1)/*总循环,输出所有满足条件的车厢调度*/
{
l=1,k=0;
for(j=0;j<i*2;j++)/*输出车厢调度*/
{
if(a[j]==1)
push(s,l++);
else if(a[j]==0)
pop(s);
}
cout<<"\n";
for(j=0;j<i;j++)/*判断是否已经满足结束条件,结束条件为11110000*/
if(a[j]==1)
k++;
if(k==i)
flag1=0;
a[i*2-1]++;/*尾数自加1*/
while(flag2&&flag1)
{
z=1,m=0,n=0,y=1;
for(j=i*2-1;j>=0&&z;j--)/*假如自加之后是2的话,前一位自加1,本位为0*/
if(a[j]!=2)
z=0;
else
{
a[j]=0;
a[j-1]++;
}
for(j=0;j<i*2&&y;j++)/*检验新的组合是否满足需求*/
{
if(a[j]==1)
m++;
else if(a[j]==0)
n++;
else
cout<<"错误\n";
if(n>m)
y=0;/*判断输出的时候栈是否为空,比如11000110*/
}
if(m==i&&n==i&&a[0]==1&&a[i*2-1]==0&&y==1)
flag2=0;
else
a[i*2-1]++;
}
flag2=1;
}
这段程序的思想是什么
专注移动前沿技术
2012-05-16
打赏
举报
回复
解读是个什么意思 你把关键算法贴出来
wujing198198
2012-05-16
打赏
举报
回复
好心人请加扣扣1652775697
GO语言-8、语法基础之多线程并发
在java/
c++
中我们要实现并发编程的时候,我们通常需要自己维护
一个
线程池,并且需要自己去包装
一个
又
一个
的任务,同时需要自己去
调度
线程执行任务并维护上下文切换,这一切通常会耗费
程序
员大量的心智
go并发编程
进程是
程序
在操作系统中的一次执行过程,系统进行资源分配和
调度
的
一个
独立单位。 B. 线程是进程的
一个
执行实体,是CPU
调度
和分派的基本单位,它是比进程更小的能独立运行的基本单位。 C.
一个
进程可以创建和撤销多...
go语言基础13——并发★★★
并发是编程里面
一个
非常重要的概念,Go语言在语言层面天生支持并发,这也是Go语言流行的
一个
很重要的原因。 Go语言中的并发编程 并发与并行 并发:同一时刻只执行
一个
任务,
一个
时间段内不断切换执行多个任务。 ...
【搞定Go语言】第2天19:Go语言基础之并发
并发是编程里面
一个
非常重要的概念,Go语言在语言层面天生支持并发,这也是Go语言流行的
一个
很重要的原因。 Go语言中的并发编程 并发与并行 并发:同一时间段内执行多个任务(你在用微信和两个女朋友聊天)。 并行:...
19. Go语言基础之并发
并发是编程里面
一个
非常重要的概念,Go语言在语言层面天生支持并发,这也是Go语言流行的
一个
很重要的原因。 19.1 并发与并行 并发:同一时间段内执行多个任务(你在用微信和两个朋友聊天)。 并行:同一时刻执行多...
C++ 语言
64,646
社区成员
250,476
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章