<span role="heading" aria-level="2">c语言求输入的任一整数的各位数之和</span>

c语言求解代码:

# include<stdio.h>

int main(void){
    int a,i=0,sum=0;
    scanf("%d",&a);
    if(a<0) a=-a;//求负整数的
    while(a){      
        sum+=(a%10);//sum存各位数之和  
        a/=10;
    }
    printf("各位数字之和为:%d\n",sum);
    return 0;
}

这样输入10位以内的整数都是正常的

一旦超过10位就.....

比如输入11个1;

这是因为数值太大溢出了!

看着才学c语言时候写的代码,感觉挺丑的,各种错误,现在再用Java写一遍吧;

 1 import java.util.Scanner;
 2 
 3 /**
 4  * @author: BinBin
 5  * @date : 2022/1/22
 6  */
 7 public class sum {
 8     public static void main(String[] args) {
 9         Scanner input = new Scanner(System.in);
10         System.out.println("请输入一个整数n:");//输入提示
11         long n = input.nextLong();   //赋值
12         if(n < 0) n = -n;       //判断是否是负整数
13         long sum = 0,t = n;    //初始化
14         for(; t>0; t /= 10)    //循环计算各位数和
15             sum += t%10;
16         System.out.println("整数n的各位数的和为:"+sum);
17     }
18 }

 

全部评论

相关推荐

头像
10-15 22:27
已编辑
门头沟学院 C++
罗格镇的小镇做题家:我投了hr打电话来说学历太低了不符合要求,建议投荣耀,结果荣耀也投了一定水花没有,非本211硕
投递华为等公司10个岗位
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务