输出一个非负整数的每位数之和

几天给大家来一道简单的循环练习题

 

题目描述如下:

输入一个大于0的非负整数,输出其每位之和

例如:

6=6;

12=1+2=3

721=7+2+1=10

1001=1+0+0+1

这题思路很简单,我们只要对这个数模上10,就得到了个位,这个个位我们可以定义一个变量储存起来,然后把那个数再除以10,就可以把个位消去了,再模上10,让那个定义的变量再加上这个得数,反复这两步

所以我们可以把上面两步写成一个while循环

当那个要计算的数<0时就可以停止循环了

代码如下:
 

#include <stdio.h>
int number(int num)
{
    int sum = 0;
    while (num > 0)         //当num<0时,停止循环
    {
        sum = sum + num % 10;       //模10得到个位
        num = num / 10;             //除10把个位去掉
    }
    return sum;
}
int main()
{
    int num = 0;
    printf("请输入大于0的非负的整数\n");
    scanf("%d", &num);
    int ret = number(num);
    printf("%d", ret);
    return 0;
}
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值