为什么操作类型用char定义会出错

P3613 【深基15.例2】寄包柜

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上找,或者自行百度


| 下一页