乐瑜 发表于 2020-12-10 12:52:16

c语言编程问题-

/*一个程序,其功能是:从键盘输入一个正整数,若为奇数,则将各个数位的数字求和并输出;若为偶数,则逆序输出。例如:若输入361,则输出10;若输入48,则输出84。*/
这个问题,应该用什么方法来判断输入的是几位数,具体应该怎么编程?非常期待能够得到大家帮助。

jitianmoshen 发表于 2020-12-10 13:37:57

本帖最后由 jitianmoshen 于 2020-12-10 13:44 编辑

#include <stdio.h>
int sum_odd(int num);
void reverse(int num);
int main(void)
{
    int num;
    scanf("%d",&num);
    if (num % 2)
      printf("%d\n",sum_odd(num));
    else
      reverse(num);
    return 0;
}
int sum_odd(int num)
{
    int sum = 0;
    int m;
    while (num)                                 //不需要判断是几位数,int类型除法是取整的,一直除以10就好了
    {
      m = num % 10;
      sum += m;
      num /= 10;
    }
    return sum;
}
void reverse(int num)
{
    int m;
    while(num)
    {
      m = num % 10;
      printf("%d",m);
      num /= 10;
    }
}

乐瑜 发表于 2020-12-10 18:04:42

jitianmoshen 发表于 2020-12-10 13:37


再次感谢
页: [1]
查看完整版本: c语言编程问题-