epiphanyer @ 2022-08-04 15:52:52
原来的代码
#include <bits/stdc++.h>
#include <vector>
using namespace std;
int n,q,x,y,k;
char op;
int main(){
scanf("%d%d",&n,&q);
vector <vector <int> > ca(n+1);
while(q--){
scanf("%c",&op);
if(op=='1'){
scanf("%d%d%d",&x,&y,&k);
if(ca[x].size()<y+1)ca[x].resize(y+1);
ca[x][y]=k;
}
else{
scanf("%d%d",&x,&y);
printf("%d\n",ca[x][y]);
}
}
return 0;
}
输完第二行就会停止运行
AC的代码
#include <bits/stdc++.h>
#include <vector>
using namespace std;
int n,q,x,y,k,op;
int main(){
scanf("%d%d",&n,&q);
vector <vector <int> > ca(n+1);
while(q--){
scanf("%d",&op);
if(op==1){
scanf("%d%d%d",&x,&y,&k);
if(ca[x].size()<y+1)ca[x].resize(y+1);
ca[x][y]=k;
}
else{
scanf("%d%d",&x,&y);
printf("%d\n",ca[x][y]);
}
}
return 0;
}
只是把op的char改成int了为什么差别这么大 求解 (名字不太危,谢绝提醒
by LiaoYF @ 2022-08-04 15:53:54
你名字可能危险
by epiphanyer @ 2022-08-04 15:55:03
@Mr_LiaoYifan 好像官方说kkkscxxx的不算高仿
by gongziwen @ 2022-08-04 15:55:20
用户名,危
by Dreamlands @ 2022-08-04 15:55:35
什么op,谁是op,我不是op
by LiaoYF @ 2022-08-04 15:56:11
@kkksc001 cin>>op
就很正常,AC代码,可能是scanf读了空字符
#include <bits/stdc++.h>
#include <vector>
using namespace std;
int n,q,x,y,k;
char op;
int main(){
scanf("%d%d",&n,&q);
vector <vector <int> > ca(n+1);
while(q--){
cin>>op;
if(op=='1'){
scanf("%d%d%d",&x,&y,&k);
if(ca[x].size()<y+1)ca[x].resize(y+1);
ca[x][y]=k;
}
else{
scanf("%d%d",&x,&y);
printf("%d\n",ca[x][y]);
}
}
return 0;
}
by epiphanyer @ 2022-08-04 15:56:42
@gongziwen 用户名不太危,闹不懂题很危
by epiphanyer @ 2022-08-04 15:57:44
@Mr_LiaoYifan 哦~感谢,看来输入字符还是用cin稳一些
by Dreamlands @ 2022-08-04 16:00:17
@kkksc001 scanf会读换行,空格,还有乱七八糟的东西,看题目样例输入格式,你这应该是读了换行?
我不懂你具体读了啥,但肯定不是你想要的
by epiphanyer @ 2022-08-04 16:01:16
@Dreamlands 呦西!懂了,感谢巨佬
by Dreamlands @ 2022-08-04 16:03:48
@kkksc001 其实字符读入都很少用scanf和cin的,至少我是这样。
有一堆比这俩好用的,比这俩快的
你可以去OI-WIKI上找,或者自行百度