azazinco 2019-10-15 18:34 采纳率: 0%
浏览 149
已采纳

为什么输入2 100输出的不是20是191

问题:统计某个给定范围[L, R]的所有整数中,数字2出现的次数。

#include <cstdio>
#include <iostream>
#include <cstring>
#include <cstdlib>
using namespace std;
char s[10];
int main()
{
    int l, r, ans = 0;
    cin >> l >> r;
    for (int i = l; i <= r; ++i) {
        sprintf(s, "%d", i);
    int len = strlen(s);
    for (int j = 0; j <= len - 1; j++)
        if(s[j] = '2')
            ++ans;
    }
    cout << ans;
    system("pause");
    return 0;
}
  • 写回答

4条回答 默认 最新

  • 豆丷 2019-10-15 19:32
    关注

    喜闻乐见的错误,
    if(s[j] = '2')
    改成
    if(s[j] == '2')
    条件判断=和==的区别相信你知道的
    用=的时候后面的段肯定会被执行的 而且也会赋值

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥20 5037端口被adb自己占了
  • ¥15 python:excel数据写入多个对应word文档
  • ¥60 全一数分解素因子和素数循环节位数
  • ¥15 ffmpeg如何安装到虚拟环境
  • ¥188 寻找能做王者评分提取的
  • ¥15 matlab用simulink求解一个二阶微分方程,要求截图
  • ¥30 乘子法解约束最优化问题的matlab代码文件,最好有matlab代码文件
  • ¥15 写论文,需要数据支撑
  • ¥15 identifier of an instance of 类 was altered from xx to xx错误
  • ¥100 反编译微信小游戏求指导