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条)

报告相同问题?

悬赏问题

  • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题
  • ¥15 linux驱动,linux应用,多线程
  • ¥20 我要一个分身加定位两个功能的安卓app
  • ¥15 基于FOC驱动器,如何实现卡丁车下坡无阻力的遛坡的效果
  • ¥15 IAR程序莫名变量多重定义
  • ¥15 (标签-UDP|关键词-client)
  • ¥15 关于库卡officelite无法与虚拟机通讯的问题
  • ¥15 目标检测项目无法读取视频
  • ¥15 GEO datasets中基因芯片数据仅仅提供了normalized signal如何进行差异分析
  • ¥100 求采集电商背景音乐的方法