鱼C论坛

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

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

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

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

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

x
我的思路是:先判断输入的数是几位的数,再除以相应的10的倍数,相加得出结果
但是运行不出结果,求大神看看啊!怎么改呢?

  1. #include <stdio.h>
  2. int sum(int n)
  3. {
  4.         int num=1,a,sum=0,i,shu=1;
  5.         char s;
  6.         while((s=getchar())!='\n')
  7.         {
  8.                 num++;
  9.         }

  10.         for(i=(num-1);i>1;i--)
  11.         {
  12.                 for(int j=1;j<=i;j++)
  13.                 {
  14.                         shu*=10;               
  15.                 }
  16.                 a=n/shu;         
  17.                 n%=shu;
  18.                 sum+=a;       
  19.         }
  20.         return sum;
  21. }

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

题目

题目
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-4-30 08:50:19 From FishC Mobile | 显示全部楼层    本楼为最佳答案   
不用这样麻烦,一路模10除10不就得到分离数字了吗
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

  2. int sum(int n) {
  3.         return n? (n%10) + sum(n/10) : n;
  4. }

  5. int main() {
  6.         printf("%d", sum(1234));
  7. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-30 11:46:53 | 显示全部楼层
运行不出结果是指程序一直不结束也不给结果,还是什么都不显示就结束了
如果是前者,可考虑过是走到这里等待你的输入?
  1. while((s=getchar())!='\n')
复制代码

相当于你要把整数n输入两遍才行,甚至是第二遍只要输入一个位数相同的数都能算。这设计逻辑问题大了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-24 10:20

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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