C 计算数组中的位数并显示它们,然后将其乘以给定的数字

C 计算数组中的位数并显示它们,然后将其乘以给定的数字,c,debugging,computer-science,C,Debugging,Computer Science,我必须根据输入的值创建一个数组。我还需要显示数组内容,这是我已经做过的,并且可以按照我的喜好执行。我只是有一些问题,试图让程序计数的数字量,并显示他们“检测到的数字”,我还需要将原始输入值(数字)乘以11,并显示在我的程序结束 问题我需要帮助调试: 1.)计数并显示输入的位数 2.)将第一个输入的数字乘以11 #include <stdio.h> int main() { int number, count, mult; int numbers[9]; printf("

我必须根据输入的值创建一个数组。我还需要显示数组内容,这是我已经做过的,并且可以按照我的喜好执行。我只是有一些问题,试图让程序计数的数字量,并显示他们“检测到的数字”,我还需要将原始输入值(数字)乘以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;
    }
#包括
int main(){
整数,计数,mult;
整数[9];
printf(“请输入一个数字:\n>”;
scanf(“%d”和编号);
mult=数字*11;
对于(计数=4;计数>=0;计数--){

如果(数字我不是c/c++背景,但根据我观察,有两件事

  • 用于(计数=4;计数>=0;计数--)
  • 您已经定义了
    整数[9]
    。您应该用9而不是4初始化计数。但是无论如何,即使您决定使用4,也可以。 请注意,一旦此循环完成执行,
    number
    的值将被修改,因为您在循环的每次迭代中将其除以10

  • 当您在函数中使用相同的
    count
    时,您在for循环中更改其值,如下所示
  • for(计数=0;计数<5;计数++)
    printf(“数字值:%d\t\n”,数字[计数];

    count
    的值为5[尽管如果您接受我的第1点,那么您也应该将循环条件中的5更改为9]。 如上所述,
    number
    的值已被修改

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

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


    希望这对您有所帮助。

    在计算位数之前,您需要重新初始化
    计数

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

    然后您可以在任何地方打印它。

    在您使用条目*11之前,存储条目*11有多容易?
    mult11=number*11;
    谢谢大家。我看了一些简单的错误!
    scanf("%d", &number);
    mult11 = number * 11;