蒟蒻C++求助!

P1980 [NOIP2013 普及组] 计数问题

代码拿走 ``` #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


|