| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1557 人关注过本帖
标题:求解一道题,入门新手求帮助。
只看楼主 加入收藏
求知的胖子
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2016-12-22
结帖率:75%
收藏
已结贴  问题点数:20 回复次数:5 
求解一道题,入门新手求帮助。
这是问题:编写程序,输入一个正整数,统计该整数的位数并计算其各个位上的数字之和。做了一下午也不懂如何实现各个位数求和。网上代码如下:
#include <stdio.h>
void main()
{
int n=0,s=0,x;
scanf("%d",&x);

while(x!=0)
{
n++;
s+=x%10;
x=x/10;
}
printf("这是一个%d位数,各位数字之和为:%d\n",n,s);
getch();
}
从n++以下我就读不懂了,它是如何实现各个位数求和的呢?求解。
搜索更多相关主题的帖子: 编写程序 include 正整数 如何 统计 
2016-12-22 23:50
求知的胖子
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2016-12-22
收藏
得分:0 
2016-12-22 23:55
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:5 
比如 1234  如何能剥离出这个4  通过对1234模10 取余 获取
           去掉4后 如何获取123  通过对1234 整除10 获取

DO IT YOURSELF !
2016-12-23 09:10
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
收藏
得分:5 
while(x!=0)
{
n++;
s+=x%10;//求余数的和
x=x/10;//更新x的值。
}

假设x=1234;
第一次执行代码块:s=s+1234%10=4
更新x的值,x=1234/10=123

第二次执行代码块:s=4+123%10=7
更新x的值,x=123/10=12

第三次执行代码块:s=7+12%10=9
更新x的值,x=12/10=1

第四次执行代码块:s=9+1%10=10
更新x的值,x=1/10=0



09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2016-12-23 10:21
Ocean1
Rank: 2
等 级:论坛游民
帖 子:25
专家分:20
注 册:2016-11-10
收藏
得分:5 
就是通过求余和相除将每一位数算出来,相加然后给x从新赋值,循环
2016-12-23 10:42
怎么也飞不高
Rank: 2
来 自:重庆市
等 级:论坛游民
帖 子:3
专家分:15
注 册:2016-12-23
收藏
得分:5 
回复 楼主 求知的胖子
#include<stdio.h>
void main()
{
    int x,sum=0,count=0;
    loop: printf("请输入一个正整数:");
    scanf("%d",&x);
    if(x<=0)
    {
        printf("输入错误!");
        goto loop;
    }
    while(x!=0)
    {
        sum+=x%10;
        x/=10;
        count++;
    }
    printf("sum=%d count=%d\n",sum,count);
}

早起的里鸟儿,有虫吃。<->起早的虫儿,备鸟吃!
2016-12-23 21:29
快速回复:求解一道题,入门新手求帮助。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024147 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved