鱼C论坛

 找回密码
 立即注册
查看: 1604|回复: 3

[已解决]函数:各个位数字求和

[复制链接]
发表于 2022-4-30 08:45:16 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
我的思路是:先判断输入的数是几位的数,再除以相应的10的倍数,相加得出结果
但是运行不出结果,求大神看看啊!怎么改呢?
#include <stdio.h>
int sum(int n)
{
        int num=1,a,sum=0,i,shu=1;
        char s;
        while((s=getchar())!='\n')
        {
                num++;
        } 

        for(i=(num-1);i>1;i--)
        {
                for(int j=1;j<=i;j++)
                {
                        shu*=10;                
                }
                a=n/shu;         
                n%=shu;
                sum+=a;        
        }
        return sum;
}

int main()
{
        int n,s;
        scanf("%d\n",&n);
        s=sum(n);
        printf("s=%d\n",s);
        
        return 0;
 } 
最佳答案
2022-4-30 08:50:19
不用这样麻烦,一路模10除10不就得到分离数字了吗

题目

题目
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-4-30 08:50:19 From FishC Mobile | 显示全部楼层    本楼为最佳答案   
不用这样麻烦,一路模10除10不就得到分离数字了吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-30 08:52:05 From FishC Mobile | 显示全部楼层
#include <stdio.h>

int sum(int n) {
        return n? (n%10) + sum(n/10) : n;
}

int main() {
        printf("%d", sum(1234));
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-30 11:46:53 | 显示全部楼层
运行不出结果是指程序一直不结束也不给结果,还是什么都不显示就结束了
如果是前者,可考虑过是走到这里等待你的输入?
 while((s=getchar())!='\n')
相当于你要把整数n输入两遍才行,甚至是第二遍只要输入一个位数相同的数都能算。这设计逻辑问题大了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-5 20:28

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表