计算数组中的位数并显示它们,并将其乘以给定的数字
Count number of digits in array and display them, plus multiply it by given number
我必须根据输入的值创建一个数组。我还需要显示数组内容,我已经完成并按我的喜好执行。我只是在尝试让程序计算位数并显示它们时遇到一些问题 "digits detected" 我还需要将原始输入值(数字)乘以 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;
}
我不是来自 c/c++ 背景,但根据我的观察,有两件事。
for(count = 4; count >= 0; count--)
您已定义int numbers[9]
。您应该使用 9 而不是 4 初始化计数。但是无论如何,即使您决定使用 4 也可以。
请注意,一旦此循环完成其执行,number
的值将被修改,因为您在循环的每次迭代中将其除以 10
- 当您在函数中使用相同的
count
时,您会在 for 循环中更改其值,如下所示
for(count = 0; count < 5; count++)
printf("Digit Value: %d\t\n", numbers[count]);
count
的值为 5 [尽管如果您接受我的第 1 点,那么您也应该在循环条件中将 5 更改为 9]。
number
的值已经按照我上面的描述进行了修改。
这就是您看不到正确位数的原因。
我建议你只在填充数组时计算位数。
希望对您有所帮助。
您需要重新初始化count
才能算出位数
count = 0; // <<---- add this line
while(number!=0)
{
number/=10;
++count;
}
你的另一个问题是将输入的数字乘以 11。你可以在更改之前这样做,就像这样
scanf("%d", &number);
mult11 = number * 11;
然后你可以打印到任何你喜欢的地方。
我必须根据输入的值创建一个数组。我还需要显示数组内容,我已经完成并按我的喜好执行。我只是在尝试让程序计算位数并显示它们时遇到一些问题 "digits detected" 我还需要将原始输入值(数字)乘以 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;
}
我不是来自 c/c++ 背景,但根据我的观察,有两件事。
for(count = 4; count >= 0; count--)
您已定义int numbers[9]
。您应该使用 9 而不是 4 初始化计数。但是无论如何,即使您决定使用 4 也可以。
请注意,一旦此循环完成其执行,number
的值将被修改,因为您在循环的每次迭代中将其除以 10
- 当您在函数中使用相同的
count
时,您会在 for 循环中更改其值,如下所示
for(count = 0; count < 5; count++)
printf("Digit Value: %d\t\n", numbers[count]);
count
的值为 5 [尽管如果您接受我的第 1 点,那么您也应该在循环条件中将 5 更改为 9]。
number
的值已经按照我上面的描述进行了修改。
这就是您看不到正确位数的原因。
我建议你只在填充数组时计算位数。
希望对您有所帮助。
您需要重新初始化count
才能算出位数
count = 0; // <<---- add this line
while(number!=0)
{
number/=10;
++count;
}
你的另一个问题是将输入的数字乘以 11。你可以在更改之前这样做,就像这样
scanf("%d", &number);
mult11 = number * 11;
然后你可以打印到任何你喜欢的地方。