for循环内cin输入问题
http://www.nowcoder.com/test/question/done?tid=2628602&qid=25955#summary
这是解题时看到的别人的一个代码
我的疑惑是 下面程序中 for循环内的 cin>>x;
我在vs2012控制台上跑,让我输入完所有x后,才去执行下面的if else ,这是为什么啊,不是输入一个x,
执行一下ifelse吗 ??难道是因为
myset.end()
一直没有值吗
#include<iostream>
#include <set>
usingnamespacestd;
intmain() {
intp, n; //篮筐数,篮球数
intx, i;
while(cin >> p >> n){
intflag=0; //作用:1.判断是否有冲突 2.如果有冲突则记录第一个冲突的序号
set<int> myset; //每一批输入样例构造一个空集合
for(i=1; i<=n; i++){ //以1开始,便于这个题目处理
cin >> x;
if(myset.find(x%p)!=myset.end() && !flag) flag =
i; //注意输入示例,只记录第一次冲突的,后面再有冲突的并不记录
elsemyset.insert(x%p);
}
if(flag) cout << flag << endl; // 有冲突
elsecout << -1 << endl; // 没有冲突
}
return0;
}
若我想实现 在控制台输入一个数,执行一次ifelse,输入一次 执行一次ifelse,怎么做呢