计算数组中的位数并显示它们,再乘以给定的数字

时间:2016-03-09 17:50:26

标签: c debugging computer-science

我必须根据输入的值创建一个数组。我还需要显示数组内容,我已经完成并按照自己的喜好执行。我只是遇到一些问题,试图让程序计算数字量并显示它们"检测到数字"我还需要将原始输入值(数字)乘以11并在程序结束时显示它。

我需要帮助调试的问题:  1.)计算并显示输入的位数  2.)将第一个输入的数字乘以11。

#include <stdio.h>

int main() {

int number, count, mult;
int numbers[9];

    printf("Please enter a number:\n>");
    scanf("%d", &number);
    mult= number * 11;

    for(count = 4; count >= 0; count--) {

    if(number <= 0)
    numbers[count] = 0;

    numbers[count] = number % 10;
    number /= 10;

}

    for(count = 0; count < 5; count++)
    printf("Digit Value: %d\t\n", numbers[count]);

    count = 0;
    while(number!=0)
    {
            number/=10;
            ++count;
    }
    printf("Digits Detected: %d\n", number);
return 0;
    }

2 个答案:

答案 0 :(得分:0)

我不是来自c / c ++背景,但根据我的观察,有两件事。

  1. for(count = 4; count >= 0; count--)
  2. 您已定义int numbers[9]。您应该使用9而不是4来初始化计数。但是即使您决定使用4也可以。 请注意,一旦此循环完成其执行,number的值将被修改,因为您在循环的每次迭代中将其除以10

    1. 当您在函数中使用相同的count时,您将在for循环中更改其值,如下所示
    2. for(count = 0; count < 5; count++) printf("Digit Value: %d\t\n", numbers[count]);

      count的值为5 [虽然如果你接受我的观点1,那么你也应该在循环条件中将5改为9]。 如上所述,number的值已经被修改。

      这是您无法看到正确位数的原因。

      我建议您只在填充数组时计算位数。

      希望这会对你有所帮助。

答案 1 :(得分:0)

在计算出位数

之前,您需要重新初始化var fs = require('fs'), files = ['src/js/**/*.js'], extraFile = 'path/to/other/file'; if( fs.existsSync(extraFile)) { files.push(extraFile); } else { console.log('FILE DOES NOT EXIST'); }
count

您的其他问题是将输入的数字乘以11.您可以在更改之前执行此操作,例如

count = 0;              // <<---- add this line
while(number!=0)
{
    number/=10;
    ++count;
}

然后你可以在任何你喜欢的地方打印它。