[评测记录](https://www.luogu.com.cn/record/134965809)
---
1.因为只是数字比较,不需要使用string,是单个字符。
2. $g[i][k]$ 表示单个字符,您声明的 $x$ 是字符串,2者类型不同,无法判等;故报错。
---
```cpp
#include <iostream>
using namespace std;
int main()
{
int n;
// string x;
char x;
cin>>n>>x;
string g[n];
for (int i=0;i<n;i++){
g[i]=to_string(i+1);
}
int times=0;
for (int i=0;i<n;i++){
for (int k=0;k<g[i].length();k++){
// if (((string)(g[i]))[k==x){
// times+=1;
// }
if(g[i][k] == x) {
++ times;
}
}
}
cout<<times;
return 0;
}
```
by Twiter_ln @ 2023-11-13 21:35:56
有没有一种可能:
1.首先你没有string的头文件
2.其次((string)(g[i]))[k]==x这里相当与拿char和string比较了,所以会报错
by chinaklp @ 2023-11-13 21:36:29
@[love20110429](/user/1095806) 在第 $15$ 行你想干嘛
by 初星逝者 @ 2023-11-13 21:36:50
@[chinaklp](/user/106583) 我当时在那里改了,用它就行了?
```cpp
#include <bits/stdc++.h>
```
可是还是报错
by love20110429 @ 2023-11-13 21:42:59
@[love20110429](/user/1095806) 关于15行比较出了问题,等号左右两边类型不同,就炸掉了
by chinaklp @ 2023-11-13 21:46:17
@[chinaklp](/user/106583)
现在,问题又来了
代码对了 可是算不对
```cpp
#include <iostream>
using namespace std;
int main()
{
int n;
char x;
cin>>n>>x;
string g[n];
for (int i=0;i<n;i++){
g[i]=to_string(i+1);
}
int times=0;
for (int i=0;i<n;i++){
for (int k=0;k<g[i].length();k++){
if(g[i][k] == x) {
++ times;
}
}
}
cout<<times;
return 0;
}
```
分析一下原因吧
by love20110429 @ 2023-11-13 21:54:36
@[love20110429](/user/1095806) 有没有可能要开long long
by chinaklp @ 2023-11-14 17:05:23
有没有一种可能,你取出数的各个位的数就行了?
by UzumakiBoruto @ 2023-11-26 21:59:49