求代码:求整数的位数及各位数字之和(用C语言)

对于给定的正整数N,求它的位数及其各位数字之和。

输入格式:

输入在一行中给出一个不超过10
​9
​​ 的正整数N。

输出格式:

在一行中输出N的位数及其各位数字之和,中间用一个空格隔开。
请问哪位大神能给出代码来。

#include
int main(){
printf("输入数字N :");
int i = 0 , result = 0;
char c;
while(1){
scanf("%c",&c);
if(c == '\n')break;
i++;
result += c-48;
}
printf("位数:%d\n数字和:%d\n",i,result);
return 0;
}

我的博客里也有,用java写的,但是看懂逻辑就好了,一样可用,有空去我博客里的java SE常见逻辑思维题看一下就好,也有其他经典的题目

写个循环就可以了 把循环后得数读出来 再把记录个数的那个值读出来

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

由于排版问题,请用这面这个

 #include <stdio.h>
#include <string.h>
int main(){
    int bitsnum = 0 , sum = 0;
    char str[11]={'\0'};
    while(scanf("%s", str)){
        for (int i=0; i<(int)strlen(str); i++)
        {
            ++bitsnum;
            sum += str[i] - 48;         
        }
        printf("%d %d\n", bitsnum, sum);
        bitsnum = 0;
        sum = 0;
    }   
    return 0;
}

亲测可用,请直接复制粘贴,不谢
#include
#include
int main(){
int bitsnum = 0 , sum = 0;
char str[11]={'\0'};
while(scanf("%s", str)){
for (int i=0; i<(int)strlen(str); i++)
{
++bitsnum;
sum += str[i] - 48;

}
printf("%d %d\n", bitsnum, sum);
bitsnum = 0;
sum = 0;
}

return 0;
}