关键是:问题问的是未知有多少数据,所以测试时不好进行显示,因为enter键并不表示所有数据输入结束!
所以只能采用以下办法:按"enter" + "Ctr+z" + "enter"即可
以前在做HDOJ等题时用while(cin>>)是因为其为多组数据才这样的,即不知道有几组数据,而不是不知道每组数据有几个值!!!
当然,好像有道题是不知道每组数据有几个值的,即《SJTUOJ 5 AC 圆盘找数》
我的做法是这样的:
这道题的输入相当有意思,他不告诉你一共要输入多少个数:
输入
输入有若干行,每一行有若干个整数a1,a2,…,am,(-30000≤a1,a2,…, am ≤ 30000),他们表示一个圆盘上的m个数,(m≤1000)。
输入直到文件输入结束。
友情提示:此题输入数据的方法有些奇特,请考虑清楚。对于数据中有一个空行的情形不算一个Case,请在程序中进行处理,跳过这个空行继续工作!:-)所以必须细致的进行处理,即先读入一行存储到字符串中,然后对字符串作为源来进行输入操作,将该字符串输入到数组中去
文件重定向:
本文介绍了一种处理未知数量输入的有效方法,特别是在程序无法预知会有多少数据输入的情况下。通过使用特殊的输入终止方式(Enter + Ctrl+z + Enter)来结束输入,并通过读取整行数据到字符串中再进行解析的方式,解决了此类问题。
583

被折叠的 条评论
为什么被折叠?



