有关PATB2018人口问题测试点五错误或超时解释(c++代码实现)

patB2018题,看着简单实则第五个测试点测了n久都没过,后来网上搜索了以下大佬们的代码,带进去实现之后,发现痛苦的源泉居然是string???又或者是cin???

1.关于cin的问题

        由于学c++的时候老师教的是cin、cout流,所以先入为主用cin去获取name,以及生日;结果未知原因导致超时,最终换成了scanf终于解决。格式如下:

scanf("%s %d/%d/%d",&name,&year,&month,&day);

2.string问题

        这波完全是我自己学艺不精的问题,刚用scanf居然想直接获取string字符串,实现完了发现运行也没报错,想试试能不能执行,结果全是段错误,就hin离谱,最后不信邪地试了试char数组,过了。后来查了发现,string是c++新增,可以使用cin、cout,但不能使用scanf,printf(准确来说printf可以使用调用c.str()方法将字符串转为c类型输出,但是scanf不太清楚)。不要犯我这种学艺不精的错误

ps:之前第五问n久没过,pat上显示的是答案错误,但是实际上应该是以上问题造成的超时或者其他问题(总之应该不是思路的问题)。

参考大佬代码

string与char数组学习参考指路学习string

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值