代码拿走
```
#include<iostream>
using namespace std;
int main()
{
long long n,i,x,b,c,t=0;
cin>>n>>x;//输入范围与要查的数字;
for(i=1;i<=n;i++)//一到n进行循环;
{
b=i;//为了不改变i的值,就把i赋值给一个数;
while(b!=0)//如果b不等于0,继续循环;
{
c=b%10;//求是否是x,是的话计数器加一;
b=b/10;//求下一个数字是否为x;
if(c==x) t++;计数器加一;
}
}
cout<<t<<endl;//输出计数器的数字;
return 0;
}
```
by Cjh20120613 @ 2023-12-02 22:34:32
```
printf("%d",&e);
```
改为
```
printf("%d", e);
```
by XuYu0317 @ 2023-12-02 22:43:37
你这代码问题挺多的呀
1、第10行`d=d/10`应该改成`c=c/10`不然无法跳出循环
2、第13行`printf("%d",&e);`中e前不用加&,而且输出应该再循环外而不是循环内
改正代码:
```cpp
#include<bits/stdc++.h>
using namespace std;
long long a,b,c,d,cnt=0;
int main(){
scanf("%d %d",&a,&b);//最大数和查找数
for(long long i=1;i<=a;i++){//依次求出所有数
c=i;//不影响i的值
while(c!=0){//求出位数最高求得次数
d=c%10;
c=c/10;
if(d==b)cnt++;
}
}
printf("%d",cnt);
return 0;
}
```
总结:错误太多,而且没有经过编译,建议下载dev_c++
by danlao @ 2023-12-02 22:48:22
输出应该放在for循环外面吧 还有while循环中
```
d=d/10;
```
应该是
```
c=c/10;
```
by XuYu0317 @ 2023-12-02 22:50:30