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

报告相同问题?