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

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

输入格式:

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

输出格式:

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

5个回答

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

#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;
}

亲测可用,请直接复制粘贴,不谢
#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;
}

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

 #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;
}
zlkzlkzlk102
zlkzlkzlk102 回复zlkzlkzlk102: #include<stdio.h> int main() { int m,sum,r,n,t; scanf("%d",&m); t=m; while(m/10>0){ n++; r=m%10; sum=r+sum; m=m/10; } if(t<9){ r=t%10; sum=r+sum;} else{ r=m%10; sum=r+sum; } printf("%d %d",n,sum); return 0; }这个是我写的 答案正确 但是机器验证不成功 求解
2 年多之前 回复
zlkzlkzlk102
zlkzlkzlk102 请问能解释一下吗
2 年多之前 回复

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

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐