注册 登录
编程论坛 C语言论坛

【求助】一个小题目

Wesuiliye 发布于 2020-03-20 14:05, 3622 次点击
题目:从键盘上输入任意正整数,输出其各位数字之和及它是一个几位数
27 回复
#2
return_02020-03-20 14:07
...
#3
return_02020-03-20 14:08
就用while
#4
Wesuiliye2020-03-20 14:09
回复 2楼 return_0
不知道该怎么下手
#5
return_02020-03-20 14:10
我写给你
#6
Wesuiliye2020-03-20 14:11
回复 5楼 return_0
谢谢了
#7
return_02020-03-20 14:17
程序代码:

#include<cstdio.h>
int main(){
    int a;
    scanf("%d",&a);
    int t=0;
    while(a!=0){
        t+=a%10;
        a/=10;
    }
    int cnt=0;
    while(t!=0){
        t/=10;
        cnt+=1;
    }
    printf("%d",cnt);
    return 0;
}
#8
lin51616782020-03-20 14:17
字符串输入是最简单的了
#9
return_02020-03-20 14:17
回复 8楼 lin5161678
怎么说
#10
return_02020-03-20 14:18
字符串输入反而复杂
#11
lin51616782020-03-20 14:20
回复 10楼 return_0
如果是 20位的正整数呢?
#12
return_02020-03-20 14:21
。。。

[此贴子已经被作者于2020-3-20 14:24编辑过]

#13
return_02020-03-20 14:21
long long
#14
lin51616782020-03-20 14:21
或者不用字符串
可以考虑用格式控制输入限制每次读取1个字符
#15
return_02020-03-20 14:22
再怎么说,我不觉得新手题会出高精度
#16
return_02020-03-20 14:22
那个难道不繁琐吗
#17
return_02020-03-20 14:23
字符串最终还是要int化计算的
#18
Wesuiliye2020-03-20 14:24
回复 7楼 return_0
不行
#19
lin51616782020-03-20 14:25
回复 12楼 return_0
程序代码:
#include<stdio.h>
int main()
{
    int nBit = 0;
    int nSum = 0;
    int ch;
    while((ch = getchar()) != '\n')
    {
        ++nBit;
        nSum += ch - '0';
    }
    printf("%d %d", nBit, nSum);
    return 0;
}
#20
return_02020-03-20 14:25
有例子吗
#21
Wesuiliye2020-03-20 14:26
回复 19楼 lin5161678
谢谢啦
#22
Wesuiliye2020-03-20 14:27
回复 20楼 return_0
谢谢你了
#23
return_02020-03-20 14:27
程序代码:

#include<stdio.h>
int main(){
    int a;
    scanf("%d",&a);
    int t=0;
    while(a!=0){
        t+=a%10;
        a/=10;
    }
    int cnt=0;
    while(t!=0){
        t/=10;
        cnt+=1;
    }
    printf("%d",cnt);
    return 0;
}
#24
return_02020-03-20 14:27
头文件打成c++的了
#25
return_02020-03-20 14:29
结帖给楼上的大佬吧
#26
Wesuiliye2020-03-20 14:30
回复 23楼 return_0
谢谢了
#27
Wesuiliye2020-03-20 14:34
回复 25楼 return_0
结账是什么
#28
自学的数学2020-03-20 19:45
程序代码:
#include <stdio.h>
int main()
{
    int num, sum=0, count=0;
    printf("输入一个整数:");
    scanf("%d", &num);
    while (num>0)
    {
        sum+=num%10;
        count++;
        num=(num-num%10)/10;
    }
    printf("位数:%d\n", count);
    printf("各位之和:%d\n", sum);
    return 0;
}
1