字符串的读入方式
这个是大佬的代码哈,运行时间上面显示是161ms
我的问题在下面,希望有大佬给小弟一个回答
#include <iostream>
using namespace std;
const int N = 100010;
int p[N];
int find(int x){
if (p[x] != x) p[x] = find(p[x]);
return p[x];
}
int main(){
int n, m;
scanf("%d%d", &n, &m);
for (int i = 1; i <= n; i ++) p[i] = i;
char op[2];
int a, b;
while (m --){
scanf("%s%d%d", op, &a, &b);
就是关于op这个字符型数组
如果说我给这个字符型数组,干脆换成一个字符串,就有问题了
问题是我是用的“scanf("%s", &op)”进行读入操作,但是显示是segmentation fault
求解决办法
if (*op == 'M') p[find(a)] = find(b);
else {
if (find(a) == find(b)) puts("Yes");
else puts("No");
}
}
return 0;
}
%%%
%%%
scanf(“%s”, &op)里面的取地址符号去掉试试 ,我记得字符串读入不需要取地址符号 或者改为%c?