完整版数学建模论文

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

承诺书
我们仔细阅读了《全国大学生数学建模竞赛章程》和《全国大学生数学建模竞赛参赛规则》(以下简称为“竞赛章程和参赛规则”,可从全国大学生数学建模竞赛网站下载)。

我们完全明白,在竞赛开始后参赛队员不能以任何方式(包括电话、电子邮件、网上咨询等)与队外的任何人(包括指导教师)研究、讨论与赛题有关的问题。

我们知道,抄袭别人的成果是违反竞赛章程和参赛规则的,如果引用别人的成果或其他公开的资料(包括网上查到的资料),必须按照规定的参考文献的表述方式在正文引用处和参考文献中明确列出。

我们郑重承诺,严格遵守竞赛章程和参赛规则,以保证竞赛的公正、公平性。

如有违反竞赛章程和参赛规则的行为,我们将受到严肃处理。

我们授权全国大学生数学建模竞赛组委会,可将我们的论文以任何形式进行公开展示(包括进行网上公示,在书籍、期刊和其他媒体进行正式或非正式发表等)。

我们参赛选择的题号是(从A/B/C/D中选择一项填写): A
我们的参赛报名号为(如果赛区设置报名号的话):
所属学校(请填写完整的全名):大连工业大学
参赛队员(打印并签名) :1. 王佳锴
2. 梁嘉祯
3. 杨挺
指导教师或指导教师组负责人(打印并签名):
(论文纸质版与电子版中的以上信息必须一致,只是电子版中无需签名。

以上内容请仔细核对,提交后将不再允许做任何修改。

如填写错误,论文可能被取消评奖资格。


日期: 2013 年 9 月16 日赛区评阅编号(由赛区组委会评阅前进行编号):
编号专用页
赛区评阅编号(由赛区组委会评阅前进行编号):
全国统一编号(由赛区组委会送交全国前编号):全国评阅编号(由全国组委会评阅前进行编号):
博弈论思想探讨车道被占用对城市道路通行能力的影响
摘要
本文针对车道被占用对城市道路通行能力影响的问题,首先根据同一路段、同一地点、事故发生在不同车道的比较,进来分析两种情况下事故对城市道路通行能力的影响,最后针对各个问题建立模型并求解。

针对问题一,我们首先根据所提供的视频构建思路,建立数理统计的模型来分析视频中交通事故发生至撤离期间,事故所处横断面实际通行能力的变化过程。

利用labview软件对实际通行能力与时间的关系进行处理,做出统计曲线;考虑到事故持续时间、实际通行能力、上游车流量得出排队长度。

我们编写了程序,并用程序模拟了事故发生的全过程,最后根据曲线分析事故对城市道路通行能力的影响问题。

针对问题二,由一得出的结论,继续采用问题一中分析问题的思路做出统计曲线,然后将一、二两种情况进行对比分析,最后得出同一横断面交通事故所占车道不同对该横断面实际通行能力影响的差异。

针对问题三,我们由一、二得出的结论来构造函数关系,建立函数模型,以函数的思想分析问题,考虑到事件本身可以量化为是决策者,所以我们运用博弈论的思想来分析问题;为模拟真实情况,我们引进随机数Rand,进一步直观的解决问题。

针对问题四,我们在问题三的基础之上,根据所得出的函数关系、以及建立的数学模型、构建数理统计思想、博弈论思想等,运用在问题四中,解决了实际出现的问题。

关键词隶属度通行能力博弈论Nash均衡函数模型随机数
一、问题重述
车道被占用是指因交通事故、路边停车、占道施工等因素,导致车道或道路横断面通行能力在单位时间内降低的现象。

由于城市道路具有交通流密度大、连续性强等特点,一条车道被占用,也可能降低路段所有车道的通行能力,即使时间短,也可能引起车辆排队,出现交通阻塞。

如处理不当,甚至出现区域性拥堵。

车道被占用的情况种类繁多、复杂,正确估算车道被占用对城市道路通行能力的影响程度,将为交通管理部门正确引导车辆行驶、审批占道施工、设计道路渠化方案、设置路边停车位和设置非港湾式公交车站等提供理论依据。

视频1(附件1)和视频2(附件2)中的两个交通事故处于同一路段的同一横断面,且完全占用两条车道。

请研究以下问题:
1.根据视频1(附件1),描述视频中交通事故发生至撤离期间,事故所处横
断面实际通行能力的变化过程。

2.根据问题1所得结论,结合视频2(附件2),分析说明同一横断面交通
事故所占车道不同对该横断面实际通行能力影响的差异。

3.构建数学模型,分析视频1(附件1)中交通事故所影响的路段车辆排队
长度与事故横断面实际通行能力、事故持续时间、路段上游车流量间的
关系。

4.假如视频1(附件1)中的交通事故所处横断面距离上游路口变为140米,
路段下游方向需求不变,路段上游车流量为1500pcu/h,事故发生时车辆
初始排队长度为零,且事故持续不撤离。

请估算,从事故发生开始,经
过多长时间,车辆排队长度将到达上游路口。

二、模型假设
1. 假定车速、车长、车间距分别是一个定值;
2.设定路段上游车流量是定值;
3. 不考虑路段上游小区路口的车流量及上游路口右转相位不受色灯信号的控制的影响;
4. 假定两起交通事故为两位决策人是完全理性的。

三、数据处理
问题一
由视频1(附件1),考虑到上游路口交通灯相位周期为30s,所以以30s为周期统计通过发生交通事故横断面的汽车数(大型客车按两辆小汽车标准化),转化成实际通行能力(pcu/h),利用Labview软件作出事故发生横断面的实际通行能力与事故持续时间的分布曲线
图一
由分布曲线可以看出,事故发生开始阶段(0-300s),实际通行能力变化比较明显,由刚开始的通行能力达到1200-1300pcu/h,迅速降到850pcu/h左右;之后300-800s期间,实际同行能力相对稳定,其数值控制在1100-1200pcu/h之间;最后800s一直到交通事故撤离,实际通行能力呈下滑趋势,其数值在1200-850pcu/h之间。

结合视频和分布曲线分析,事故发生开始阶段(0-300s),实际通行能力变化比较明显,可以认为是一开始刚发生事故,后来车辆清晰判断哪两条车道被占用,所以,可以尽早选择可以通行的车道,相当于三条道汇成一条道,所以一开始实际通行能力比较高。

之后,由于一条车道压力过大,其他车道也会有车驶入,造成道路横断面通行能力在单位时间内迅速降低的现象。

在之后300-800s期间,实际通行能力相对稳定,但通行能力控制在1100-1200pcu/h之间,即道路横断面通行能力相对较低。

在此阶段,来车难以判断哪条车道被占用,导致车辆排队,出现交通阻塞。

最后800s一直到交通事故撤离,实际通行能力呈下滑趋势,其数值在1200-850pcu/h之间。

再根据视频提供的时间段,恰巧是下班高峰期,车流量明
显增多,导致交通阻塞更加严重,实际通行能力一直下降。

图二
问题二
由问题一的结论以及视频一和视频二出现的两种交通事故的分布曲线图(实际通行能力与事故持续时间)的比较。

对于两者的比较,我们可以用博弈论的思想分析两种情况的差异。

我们可以认为事故是决策者,事故发生后车道被占用的两种情况可以看成两种决策。

表一
图三
根据图3,策略二的通行能力基本在策略一的通行能力平均值(1133 pcu/h)之上,而且最大值可以达到1920pcu/h,明显大于策略一的实际通行能力。

出现上述差异的原因是,车道一车流量为21%;车道二为44%;车道三位35%。

在策略一的情况下,只能利用车道一来通行,其车流量比较低,以至于造成其他车辆汇进车道一的数量比较多,增加了排队紊乱情况发生的概率。

至于策略二的情况,只能用车道三来通行,其车流量相对车道一高,减少了其他车辆汇进车道三的数量,减少了排队紊乱情况发生的概率。

故策略二的通行能力总体大
于策略一的通行能力,即视频二的实际通行能力高于视频一中车道的通行能力。

图四
五、模型的分析、建立与求解
问题三
由附件1视频(1)分析,考虑到司机驾驶车通过事故地点可以归纳为完全理性和非完全理性建立分析思路,利用博弈论来分析交通事故所影响的路段车辆排队长度与事故横断面实际通行能力、事故持续时间、路段上游车流量间的关系,建立数学模型。

模型假设:(1)30s 内路段上游车流辆为恒定值,30s 内只有转变进入的车辆恒定为2辆;(2)小车长度为3米,车之间的间隔为1米。

模型分析:由于交通事故发生在第二、三车道,导致第二、三车道无法通行,车辆只能通过第一车道;对于路段上游行驶过来的车通过发生交通事故的地点时,有以下两种行车情况:情况一表示,前排车辆通过发生事故横断面的情况;情况二表示:上游来车选择车道排队的情况
情况一:根据博弈论,此种情况参与人可以归纳为合作博弈,即每个司机是
完全理性的;此种情况的规则是:
(1)只有第一车道的车可以通过,第二、三车道的车等待;
(2)第二车道的车在第一车道的车开走后进入第一车道,而第三车道的车在原车道等待;
(3)第三车道的车驶入第二车道,然后按第(2)中描述的规则通过第一车道。

根据贝叶斯规则,i=1、2、3.表示第二排三辆车作为决策者,并且有顺序,车辆二最先采取行动,司机观察到行动后再采取行动,车辆三观测到车辆二行动后再采取行动,即是一个完全动态博弈,即车辆二根据车辆一的行动有两种情况。

对于每一个决策者,只能有两种决策,决策一:往前充补空缺(x
1
表示),
决策二:不动(x
2
表示)。

即X={x
1,x
2
}
即策略组合为:
○1策略 S
11 S
2
2 S
3
2即表示车道一的车动,车道二、三的车不
动;
○2策略 S
12 S
2
1 S
3
2即表示车道一、三的车不动,车道二的车
动;
○3策略 S
12 S
2
2 S
3
1即表示车道一、二的车不动,车道三的车
动。

用u表示车道的排队长度变化,所以设定车辆通过横断面模糊值为:
u=(u
1,u
2
,u
3
),表示在对应战略的相关车道排队长度的变化;
u 1(S
1
1 S
2
2 S
3
2)=-1
u
2(S
1
2 S
2
1 S
3
2)=-1
u
3(S
1
2 S
2
2 S
3
1)=-1
根据Nash均衡,可得最优解,多次重复博弈,这里定为3、6……、n次:
2次博弈,表格数值依次显示为u
1,u
2
,u
3
123
在3次重复博弈中出现(-1,-1,-1)这种相当于三条车道同时减少1辆车的情况。

就是说在多次重复博弈中,三种战略组合出现次数相等的情况下,三车道的排队长度一样。

根据Nash均衡,次为最优解。

模型建立:
为模拟真实情况,我们引进随机数Rand,可认为此为隶属度A,当A>模糊值时,可认为发生相应事件是可信的;
n=×tdt 在此种情况下,i n j n k n分别表示汇入车道一、二、三;∈(0,1)
A为每次来车车道的隶属度,A
n
为没量车选择车道的隶属度。

A
n = { A
1
、A
2
……A
n
}
n=×tdt 且(A
n
> I = 50%,其他j
n
=1)
一辆车:
A>21% :
i
n
=1
j
n
=0 21%<A<65% :
当L
2-L
1
≥2,且A
n
>I=50%
i
n
=1
j
n
=0
当L
2-L
3
≥2,且A
n
>I=50%
j
n
=1
k
n
=0
其他: j
n
=1 A>65%:
当L
3-L
2
≥2,且A
n
>I=50%
重复n次后:
L
1=∑i
n
L
2
=∑j
n
L
3
=∑k
n
最后模型结果为排队长度Lmax={ L
1,L
2
,L
3
}
情况二:根据博弈论,此种情况参与人可以归纳为非合作博弈,即司机是非理性的;再此种情况下,前提是假设没有并排车辆,来车车道按照比例随机驶入第一车道;司机在不知道占用车道的情况下随机进入排队前比较通畅的车道,例如,第二车道的车可进入第一、二、三车道,第一车道的车可以驶入第一、二车道,第三车道的车可驶入第二、三车道。

因为前面车辆排队,来车不知道哪条车道被占用,来车可独立按一定规则选择车道。

此为不完全信息静态博弈。

根据贝叶斯规则 i=(1,2,3)分别表示来车为车道一,车道二,车道三。

对于车道一,根据规则:
决策一:保持车道一; 决策二:汇入车道二; 表示为S 1={S 11,S 12}
对于车道二,根据规则:
决策一:汇入车道一; 决策二:保持原车道二; 决策三:汇入车道三; 表示为S 2={S 21,S 22,S 23}
对于车道三,根据规则:
决策一:汇入车道; 决策三;保持车道三; 表示为S 3={S 31,S 32,S 33}
在此,我们引入一个假设,司机会尽量选择车队短的车道,但是司机不知道前方哪条车道被占用,根据上面得到的模糊值,可知被占用车道流量和不被占用车道比为4:3: 3,就是说当自己车道的车比其他车道的车多出一辆时,对于汇入较少的车辆没多大影响,所以认为才有可能汇入其他车辆,根据视频中出现的情况,即汇入相邻车道的模糊值为I=0.5 模型建立:
dt
B n 为每次车选择战略组合的隶属度 B n <40%
选择战略1 S 11S 22S 32 L 1=L 1-1 B n ∈(40%,70%)
选择战略2 S 12S 21S 32 L 2=L 2-1 B n >70%
选择战略3 S 12S 22S 33 L 3=L 3-1
重复dt tcs
3600
0⎰ 后,得到结果。

综上,可以根据给定的事故持续时间、实际通行能力、上游车流量得出排队
长度。

以下为程序(见附录程序一)模拟过程,设时间周期为60S,其中30S为路灯时间,30S红灯和黄灯,将两者车流量作平均,等效为车辆持续能力为1500pch/h 设定,实际通行能力平均值为1120pch/h,再给出事故持续时间,得出长度。

以下为模型对应程序(C语言)的运行(VC++6.0)结果:
从图中可以看出,当输入相同的时间是时出现不同的结果,是因为在程序中用到了随机数。

因为是随机的,所以情况就比较多,上面是部分比较有代表性的结果。

在小部分情况下会出现4,8,8,这种不太合理的情况,但大多数情况下还是出现像36,104,96这样比较合理的情况。

问题四
根据上述建立的模型,假如视频1(附件1)中的交通事故所处横断面距离
上游路口变为140米,即Lmax={L
1,L
2
,L
3
}=140m,C
s
实际同行能力,因为没有
新的数据,所以还是用程序设计时用到的1120pch/h,上游车流量为题目设定的1500pcu/h。

且所有模糊量都用上述得到的数据。

Lmax={L
1,L
2
,L
3
}=140m
C
s
=1500pcu/h
A
n ={A
1
、A
2
……A
n
}
N1=×tdt
N2=×tdt
B n= {B1、B 2……B n}
通过程序(2)(程序1作稍微修改用作求解时间)得到以下结果
从截图中可以看出,输入相同的上游路口长度,但出现了许多种不同的结果,有600S、720S、780S、840S、900S、1020S等,还有其他的结果,我们没有一一输出(其中有一种输入后什么都不输出,是因为在这样一个大循环中,有可能会不出现正好等于140的情况,它可能只出现了等于136或144,而恰好没有出现140,所以此种情况下它就不输出时间了)。

六、模型评价和改进
模型评价:
因为模型引入了随机数,可能造成模型的结果不太稳定,但是这样恰巧符合现实中的偶然性,在多次运行模型对应的程序后,有大部分比较趋向一个值的结果。

对于上面建立的模型,关于模糊值的选取只通过视频一统计和经过概率计算获得,模糊值是不太客观的,但是因为根据实际和概率计算得到的,我们还修正了模糊值,例如把得到的最优解(车辆通过事故发生横断面)33%,33%,33%
改成更符合实际的40%,30%,30%,所以模糊值的偏离程度也不会太大。

引用了随机数,是为了迎合显示中的不确定性,通过引入随机数,虽然造成结果的不唯一,但是可以更客观和更准确地使建立的模型处于一种动态的情况,更加贴近现实中来车选择车道和车辆通过事故发生横截面的状况。

使模拟的程序更接近现实,得出的结果有很好的可信性。

在博弈论思想去处理来车选择车道和车辆通过事故发生横截面这两种状况,虽然说不可以完全等同于传统博弈的方式,但是可以在假设的基础上,认为这是两种博弈情况,可以更清晰的分析和处理可能发生的状况,方便求出最优解。

模型改进:
可以通过更大量的数据统计,修正我们设定的模糊值,使模型更加贴近实际,使得到的结果更加完善。

对于事故发生很断面的通行能力方面,数据偏少,而且同行能力跟诸多现实状况密切相关,不能代表是一般状况,所以要通过更庞大的数据通过筛选和归纳得出一般情况下,横断面通行能力的变化。

上游路口车流量通过视频看,也是不是恒定的,而且对车排队影响很大。

一般的,实际中车流量是与当日时间有一定关系的,所以,关于车流量的取值,更应该根据大量的数据,而且是考虑到当时具体时间作判断。

如果这样,模型就更准确了。

七、模型推广
本模型的建立对于研究减缓城市交通压力和城市交通线路的设计建造有着重要的意义,尤其在当今交通比较发达,交通情况种类繁多、复杂的时代,该模型的建立对于研究城市规划,交通管理部门正确引导车辆行驶、审批占道施工、设计道路渠化方案、设置路边停车位和设置非港湾式公交车站等提供理论依据。

八、参考文献
[1] 罗云峰,博弈论教程,北京:清华大学出版社;北京交通大学出版社,2007.8
[2] 韩中庚,数学建模竞赛——获奖论文精选与点评,北京:科学出版社,2007
[3] 盛骤,谢式千,概率论与数理统计,北京:高等教育出版社,2003
[4] 姜启源,数学模型(第二版),北京:高等教育出版社,1992
[5] 费业泰,误差理论与数据处理(第五版),北京:机械工业出版社,2004.6
[6] 韩中庚,数学建模方法及其应用[M],北京:高等教育出版社,2005
[7] 谢金星,优化建模与LINDO/LINGO软件,北京:清华大学出版社,2005.7
[8](美)特拉维斯,(美)克林,LabVIEW大学实用教程,电子工业出版社,2008.6.1
九、附录
程序一:
# include <stdlib.h>
# include <stdio.h>
# include <time.h> //使用当前时钟做种子
# include <string.h>
double fun()
{
double j;
j=(double)(10.0*rand()/(RAND_MAX+1.0)); //产生0到9之间的随机数
return j;
}
void main()
{
int i=1,j=1,k=1,l,m,g,n,v;
double w,z;
int a[60]={1};
int b[60]={1};
int c[60]={1};
printf("请输入事故发生后的一段时间:");
scanf("%d",&v);
for(g=0;g<v/60;g++) //输入一段时间判断有几个周期{
for(n=0;n<15;n++) //一个周期内有15辆车流入,及路段上游车流量
{
w=fun();
if(w<2.1) //一车道为来车选择排队的车道
{
l=i-j;
if(l>=2)
{
z=fun();
if(z>5.0)
{
a[i]=1;
i++;
}
else
{
b[j]=1;
j++;
}
}
else
{
a[i]=1;
i++;
}
}
else if(w>6.5) //三车道来车选择排队车道{
l=k-j;
if(l>=2)
{
z=fun();
if(z>5.0)
{
b[j]=1;
j++;
}
else
{
c[k]=1;
k++;
}
}
else
{
c[k]=1;
k++;
}
}
else
{
l=j-i;
m=j-k;
if(l>=2 && m<2)
{
z=fun();
if(z>5.0)
{
a[i]=1;
i++;
}
else
{
b[j]=1;
j++;
}
}
else if(l<2 && m>=2)
{
z=fun();
if(z>5.0)
{
b[j]=1;
j++;
}
else
{
c[k]=1;
k++;
}
}
else if(l>=2 && m>=2)
{
if(l>m)
{
z=fun();
if(z>5.0)
{
a[i]=1;
i++;
}
else
{
b[j]=1;
j++;
}
}
else if(l<m)
{
z=fun();
if(z>5.0)
{
b[j]=1;
j++;
}
else
{
c[k]=1;
k++;
}
}
else
{
if(z<3.0)
{
a[i]=1;
i++;
}
else if(z>7.0)
{
c[k]=1;
k++;
}
else
{
b[j]=1;
j++;
}
}
}
}
}
}
for(g=0;g<v/30;g++) //判断车走了几个周期
{
for(n=0;n<4;n++) //一个周期剩下多少车(上游车流量-横断面通行能力=剩下来的车辆)
{
z=fun();
if(z<=4.0)
{
a[i-1]=0;
i--;
}
else if(z>=7.0)
{
c[k-1]=0;
k--;
}
else
{
b[j-1]=0;
j--;
}
}
}
int h;
h=i+j+k;
if((h<=0) || (i==1 && j==1 && k==1))
printf("没有开始排队\n");
else if(i<=0 || j<=0 ||c<=0) //如果三条车道中有一条是没有车的,那么我们就根据附件3中所给的比例进行随机分配
{
i=(int)(h/3)*0.21;
j=(int)(h/3)*0.44;
k=(int)(h/3)*0.35;
printf("第一条车道的长度为:%d\n",(i+1)*4);
printf("第二条车道的长度为:%d\n",(j+1)*4);
printf("第三条车道的长度为:%d\n",(k+1)*4);
}
else
{
printf("第一条车道的长度为:%d\n",(i+1)*4);
printf("第二条车道的长度为:%d\n",(j+1)*4);
printf("第三条车道的长度为:%d\n\n",(k+1)*4);
}
char in_char[10];
printf("你是否想继续?如果想请输入“是”,否则输入“否”\n\n\n");
scanf("%s",in_char);
if(strcmp(in_char,"是")==0)
main();
if(strcmp(in_char," 否")==0)
exit(0);}
程序二:
# include <stdlib.h>
# include <stdio.h>
# include <time.h> //使用当前时钟做种子
# include <string.h>
double fun()
{
double j;
j=(double)(10.0*rand()/(RAND_MAX+1.0)); //产生0到9之间的随机数
return j;
}
void main()
{
int i=1,j=1,k=1,l,m,g,n;
double w,z;
int a[60]={1};
int b[60]={1};
int c[60]={1};
// printf("请输入事故发生后的一段时间:");
//scanf("%d",&v);
for(g=0;g<10;g++) //g表示周期
{
for(n=0;n<15;n++) //一个周期内有15辆车流入,及路段上游车流量
{
w=fun();
if(w<2.1) //一车道为来车选择排队的车道
{
l=i-j;
if(l>=2)
{
z=fun();
if(z>5.0)
{
a[i]=1;
i++;
}
else
{
b[j]=1;
j++;
}
}
else
{
a[i]=1;
i++;
}
}
else if(w>6.5) //三车道来车选择排队车道
{
l=k-j;
if(l>=2)
{
z=fun();
if(z>5.0)
{
b[j]=1;
j++;
}
else
{
c[k]=1;
k++;
}
}
else
{
c[k]=1;
k++;
}
}
else
{
l=j-i;
m=j-k;
if(l>=2 && m<2)
{
z=fun();
if(z>5.0)
{
a[i]=1;
i++;
}
else
{
b[j]=1;
j++;
}
}
else if(l<2 && m>=2)
{
z=fun();
if(z>5.0)
{
b[j]=1;
j++;
}
else
{
c[k]=1;
k++;
}
}
else if(l>=2 && m>=2) {
if(l>m)
{
z=fun();
if(z>5.0)
{
a[i]=1;
i++;
}
else
{
b[j]=1;
j++;
}
}
else if(l<m)
{
z=fun();
if(z>5.0)
{
b[j]=1;
j++;
}
else
{
c[k]=1;
k++;
}
}
else
{
if(z<3.0)
{
a[i]=1;
i++;
}
else if(z>7.0)
{
c[k]=1;
k++;
}
else
{
b[j]=1;
j++;
}
}
}
}
}
}
int v;
printf("输入上游路口的长度:");
scanf("%d",&v);
for(g=0;g<20;g++) //判断车走了几个周期
{
for(n=0;n<4;n++) //一个周期剩下多少车(上游车流量-横断面通行能力=剩下来的车辆)
{
z=fun();
if(z<=4.0)
{
a[i-1]=0;
i--;
}
else if(z>=7.0)
{
c[k-1]=0;
k--;
}
else
{
b[j-1]=0;
j--;
}
}
if(v==(i+j+k)*4)
{
printf("此时的时间为%d S\n",g*60);
break;
}
}
char in_char[10];
printf("\n\n你是否想继续?如果想请输入“是”,否则输入“否”\n");
scanf("%s",in_char);
if(strcmp(in_char,"是")==0)
main();
if(strcmp(in_char," 否")==0)
exit(0);
}。

相关文档
最新文档