C 计算数组中的位数并显示它们,然后将其乘以给定的数字
我必须根据输入的值创建一个数组。我还需要显示数组内容,这是我已经做过的,并且可以按照我的喜好执行。我只是有一些问题,试图让程序计数的数字量,并显示他们“检测到的数字”,我还需要将原始输入值(数字)乘以11,并显示在我的程序结束 问题我需要帮助调试: 1.)计数并显示输入的位数 2.)将第一个输入的数字乘以11C 计算数组中的位数并显示它们,然后将其乘以给定的数字,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("
#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;