c语言:正整数N,求它的位数及其各位数字之和。输入:不超过十的九次方。输出:N的位数及其各位数字

c语言:正整数N,求它的位数及其各位数字之和。输入:不超过十的九次方。输出:N的位数及其各位数字之和,中间用一个空格隔开

#include<stdio.h>
#include<math.h>

int main()
{
    int n = 0;
    int sum = 0; //各位数和
    int flag = 0;
    int sum1 = 1; //多少位数
    
    printf("请输入需要计算的数字:\n");
    scanf("%d", &n);
    
    for(int i = 1; i <= 9; i++) //不超过十的九次方
    {
        flag = n % pow(10, i);  //求各个数位的值
        
        if(n == flag) //确定是否已经求完各个数位上的值
        {
            break;
        }
        else
        {
            sum1++; //求数字是多少位
        }
        
        sum += flag; //求各个数位上数字的和
        
    }
    
    printf("该数字的位数为:%d 各位数相加值为:%d\n", sum1, sum);
    
    return 0;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-11-08
#includeintmain(){intn,count,sum,tmp;printf("Inputaninteger:");while(scanf("%d",&n)!=EOF&&n>=0){count=1;sum=0;while(n>0){tmp=n%10;sum+=tmp;n=n/10;if(n>0){count++;}}printf("count=%d,sum=%d\n",count,sum
相似回答