aomiks @ 2024-08-17 22:16:04
数据2对照答案一致,为什么是WA呢?求指点!
#include <iostream>
using namespace std;
int main(){
int n,a,ans=0;
bool jo=0;
cin>>n;
for(int i=1; i<=n*2; i++){
cin>>a;
if(jo==0){ //输出0
for(int j=1; j<=a; j++){
if(ans%n==0 && ans!=0){ //换行
cout<<endl;
}
cout<<0;
ans++;
}
jo= 1;
}
else{ //输出1
for(int k=1; k<=a; k++){
if(ans%n==0 && ans!=0){
cout<<endl;
}
cout<<1;
ans++;
}
jo= 0;
}
}
return 0;
}
by Dead_Butterfly @ 2024-08-17 22:26:28
@aomiks 数据发一下
by aomiks @ 2024-08-17 22:59:24
@Dead_Butterfly ``` 80 0 10 360 4 211 2 400 2 12 10 16 2 78 2 78 2 78 2 18 2 23 11 24 2 78 2 78 2 78 2 78 2 78 2 28 2 48 2 72 2 78 2 78 2 78 2 516 2 400 2 93 4 40 10 575 2 400 2 38 2 78 2 78 2 78 2 18 2 58 2 78 2 78 2 78 2 78 2 78 2 28 2 48 2 72 2 78 2 78 2 78 2 28 43 445 2 400 2 93 4 40
我想着是不是cin太多后导致错误了,所以我改用数组,先把所有输入都cin到数组里,结果发现n是7可以,如果是第2组数据n是80,我在devC++中只执行cin的那个for,后面的for语句不执行,请教啥原因呢?
```cpp
#include <iostream>
using namespace std;
int n,a[500],ans=0;
bool jo=0;
int main(){
cin>>n;
for(int ii=1; ii<=n*2; ii++){
cin>>a[ii];
}
//////////////////n=80执行到这里就不往下走了
for(int i=1; i<=n*2; i++){
if(jo==0){ //输出0
for(int j=1; j<=a[i]; j++){
if(ans%n==0 && ans!=0){ //换行
cout<<endl;
}
cout<<0;
ans++;
}
jo= 1;
}
else{ //输出1
for(int k=1; k<=a[i]; k++){
if(ans%n==0 && ans!=0){
cout<<endl;
}
cout<<1;
ans++;
}
jo= 0;
}
}
return 0;
}
by Dead_Butterfly @ 2024-08-17 23:02:33
@aomiks 谁告诉你一定是2n个的
by Dead_Butterfly @ 2024-08-17 23:03:29
@aomiks 题目只说了总和为n^2,没说输入的个数
by Dead_Butterfly @ 2024-08-17 23:05:59
@aomiks 所以最上面那个程序第二个循环要改掉
by aomiks @ 2024-08-17 23:16:46
@Dead_Butterfly 是的,谢谢大佬!误解题目了,数了一下测试数据正好是14个,7的2倍,呜呜呜~~