请看如下代码:

#include<iostream>
using namespace std;
int a;
int s[100];
int main(){
	cin>>a>>s[a];
	cout<<a<<" "<<s[a];
	return 0;
}

如果我输入1 5,程序不会输出1 5,相反,程序会输出1 0

为什么?

由于a和s[a]的读入写在了同一个cin里,这会导致s[a]在读入时默认a还是0,没错,同一个cin里的执行顺序是

  1. 从控制台读入这些东西
  2. 把这些东西同时放入变量
  3. 结束输入

这让我在比赛中挂了100分!吃光后人!

4 条评论

  • @ 2025-7-4 15:49:45

    你自己从本地测的时候没发现吗

    • @ 2025-7-4 15:49:44

      你自己从本地测的时候没发现吗

      • @ 2025-7-4 15:14:47

        使用快读可以解决问题

        • @ 2025-7-4 15:13:20

          即使1和5分到两行输入,还是会输出1和0,吃光后人。

          • 1