繁体   English   中英

为什么我一直得到 0 作为输出?

[英]Why do i keep getting 0 as an output?

练习的重点是从 N 和 M 之间的一行数字中删除每个 K 数字。作为输出,我必须获得该行中剩余的数字数,我也不必打印出该行。 这是代码:

#include <iostream>

using namespace std;

int main() {
  int n, m, k;
  int i = n;
  int a = 0;

  cin >> n >> m >> k;

  if (1 <= n && n < m && m < 1000 && 1 <= k && k < 1000) {
  } else {
    return 0;
  }

  while (i <= m - n) {
    i++;

    if (i < 10) {
      a++;
    } else if (i >= 10 && i < 100) {
      a += 1 * 2;
    } else if (i > 100) {
      a += 1 * 3;
    }
  }

  cout << a - a / k;

  return 0;
}
  int n, m, k;
  int i = n;

C++ 中的局部变量未初始化,因此您不知道nmk 在这里将i设置为n毫无意义,因为n有一个我们不知道的未初始化值,所以i现在有一些我们不知道的未初始化值。

您需要移动i的分配,直到您知道n的值。

  int n, m, k;
  cin >> n >> m >> k;`
  int i = n;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM