2014-09-21 75 views
-1

编写一个程序来读取一个整数并继续添加数字,直到得到一个数字为 的数字。例如,7976的输出为2 (7976 - - t 29 - - t 11 - - t 2)迭代求和中的分段错误

为此,您的main()函数必须调用函数sumdigits(0)来解决 的问题,然后打印出最终结果。

我已经解决了这个问题,逻辑是正确的,我没有得到任何输出当我给我的输入只是移动到下一行。

#include <stdio.h> 

sumdigits(int x) 
{ 
    int n = x; 
    int y = 0; 

    while(n>0) { 
    y = y + n % 10; 
    n = n/10; 
    } 
    return y; 
} 

int main(void) 
{ 
int a; 

scanf("%d",&a); 

while(a>10) { 
    a=sumdigits(a); 
} 

printf("%d",a); 
} 
+0

由于问题解决 – user3692108 2014-09-21 09:54:31

回答

1

问题是此行

scanf("%d",a); 

应该

scanf("%d", &a); 
//----------^ use & 
+0

谢谢问题解决了 – user3692108 2014-09-21 09:51:24