我有一个初学者的C编程课的作业:
加法持久性是整数位数之和的属性。找到数字的总和,然后对总和执行数字的总和,重复直到达到单个整数。这样的循环数就是整数的累加持久性。考虑一下 以下示例:
●起始整数是1234
●总和为1 + 2 + 3 + 4 = 10
●整数现在为10
●其位数之和为1 + 0 = 1
●整数是1。当值达到一位数字时,我们就完成了。最后一个整数是加法根
循环数是加性持久性。整数1234的累加持久性为2(第一个和为10,然后第二个和为1)。达到的最后一个数字称为整数的加法数字根。 1234的加法数字根为1。 编写一个程序:
●向用户询问一个正整数。
●如果给定的整数是一位数字,则将其加性余辉和乘性余辉报告为0,并将其加法根均报告为自身。
●如果整数小于0,则表示退出程序。
●否则,找到给定整数的加法持久性和加法根,并将结果报告给用户
●继续提示用户,直到他们退出
这是我想出的代码:
#include <stdio.h>
int main()
{
int num;
int pers = 0;
int res = 0;
int sig = 0;
int sum = 0;
int sum1 = 0;
for (sig = 0;sig >= 0;) {
printf("Please enter a positive integer to find the additive persistence,and the integer's additive digital root: ");
scanf_s("%d",&num);
if (num < 0) {
sig--;
break;
}
res = num;
sum = 0;
while((res>0)){
sum = sum + (res % 10);
res = num / 10;
if (res == 0) {
if (sum >= 10) {
res = sum;
sum = 0;
}
if (sum < 10)
pers++;
}
}
printf("\nThe additive persistence is %d and the additive root is %d\n",pers,sum);
}
return 0;
}
每当我(成功)编译并运行代码时,在scanf语句之后,程序将不执行任何操作。为什么会这样呢?对于成功完成此作业有什么建议吗? 非常感谢您的帮助