这段代码卡住了,我不知道';我不知道为什么 #包括 整数和数字(整数); int main() { INTA; printf(“输入我们想要的数字总和的编号\n”); scanf(“%d”和“&a”); printf(“数字%d中的一部分,和(a)); 返回0; } 整数和数字(整数) { 整数和=0; 而(num>0); { 总和=总和+num%10; num=num/10; } }
当我运行这段代码时,它要求输入值,但当我按enter键时,它被卡住了。无法理解为什么它没有产生任何结果这段代码卡住了,我不知道';我不知道为什么 #包括 整数和数字(整数); int main() { INTA; printf(“输入我们想要的数字总和的编号\n”); scanf(“%d”和“&a”); printf(“数字%d中的一部分,和(a)); 返回0; } 整数和数字(整数) { 整数和=0; 而(num>0); { 总和=总和+num%10; num=num/10; } },c,C,当我运行这段代码时,它要求输入值,但当我按enter键时,它被卡住了。无法理解为什么它没有产生任何结果 这是scanf的空格问题吗?您的while循环是无限的。您需要删除分号。 一个while循环看起来像这样 #include<stdio.h> int sum_digit(int); int main() { int a; printf("Enter no. for which we want the sum of digits\n"); scanf("
这是scanf的空格问题吗?您的while循环是无限的。您需要删除分号。 一个while循环看起来像这样
#include<stdio.h>
int sum_digit(int);
int main()
{
int a;
printf("Enter no. for which we want the sum of digits\n");
scanf(" %d", &a);
printf("Some of digit %d", sum_digit(a));
return 0;
}
int sum_digit(int num)
{
int sum = 0;
while(num > 0);
{
sum = sum + num % 10;
num = num / 10;
}
}
while循环什么也不做,但是如果在典型用例中while循环(以及while循环的和if
语句)的末尾没有分号,那么while循环将继续运行。这就是说,在行的末尾有一个额外的分号:while(num>0)代码>。删除预期行为的分号
正如注释中所指出的,函数int sum\u digit(int)
将导致一个错误,因为它不返回任何内容。加返回和函数末尾的code>来修复该问题
以下是最终代码:
while(condition) {
statement(s);
}
#包括
整数和数字(整数);
int main()
{
INTA;
printf(“输入我们想要的数字总和的编号\n”);
scanf(“%d”和“&a”);
printf(“数字%d中的一部分,和(a));
返回0;
}
整数和数字(整数)
{
整数和=0;
while(num>0)
{
总和=总和+num%10;
num=num/10;
}
回报金额;
}
在结尾使用分号有时可能是错误的。您的代码有两个问题:
while(num>0)代码>-有一个分号
在循环条件之后,这导致循环的主体不会被视为循环主体,而
循环只是不断地证明该条件,并且当num
没有改变时,循环无限进行
函数sum\u digit()
不返回任何内容
因此,要使用printf(“数字%d的某些部分”,求和数字(a))代码>调用
返回和代码>在<代码>总和数字()的末尾。
注意:如果您使用GCC,则-Wall
选项显示了这两个选项的警告。首先正确缩进您的代码。sum\u digit
需要返回一些内容。while(num>0)代码>当然,我可以同意。我想这取决于编译器。我使用了VS2017 C++一个漂亮的猫BTW.我得到了3。D我没有任何想法,只是在网上某个地方发现了这个,Visual Studio 2017显示了无返回值的警告和/或错误?更新:以前没有用-Wall
尝试过。我很着急。我是傻瓜然后,它实际上会同时显示这两个方面的警告。
#include<stdio.h>
int sum_digit(int);
int main()
{
int a;
printf("Enter no. for which we want the sum of digits\n");
scanf(" %d", &a);
printf("Some of digit %d", sum_digit(a));
return 0;
}
int sum_digit(int num)
{
int sum = 0;
while(num > 0)
{
sum = sum + num % 10;
num = num / 10;
}
return sum;
}