c - 这个程序计算 5 位数字的总和是否正确

标签 c

计算五位数之和的程序
尽管我认为该程序实际上是正确的,但该程序在编译器中显示错误

#include<stdio.h>

int main()
{
    int i,a,num=32765,n;
    int sum=0;

    a=num%10; 
    n=num/10;
    sum=sum+a;

    for(i=0;i>4;i++)
    {

        a=n%10;
        n=n/10; 
        sum=sum+a; 


    }

    printf("the sum of five digits is %d", sum); 

}

最佳答案

代码中的循环永远不会进入,因为i=0,然后检查i>=3是否为真。 你可以使用这样的东西:

int digit_sum(int num){
int sum=0;
while (num !=0){
 sum += num%10;
  num = num/10;
}
  return sum;
}
int main()
{
int num = 12346;
/*
if (num <0) // add this block if negative number is posible 
    num = -num; // and its ok to change num or use some temp instead
*/
int sum = digit_sum(num);
printf("the sum of five digits is %d",sum);
 return 0;
}

或者使用递归:

int digit_sum(int num){
if (num) 
   return num%10 + digit_sum(num/10);
}

关于c - 这个程序计算 5 位数字的总和是否正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48007046/

相关文章:

c - 转换为 uint8_t * 的结构指针会引发错误

c - 深奥的 C 指定初始化程序失败,编译器错误或功能?

c - 在C问题中显示堆栈链表

c - 如何从 char 数组中检索 n 个字符

c - 如何转义C系统函数中的分号

c - C中的前自增和后自增

c - 如何在 C exec.file 中找到构建的目录字符串?

c - C中的未知值链表

c - 指向结构的指针中的运行时错误

C套接字编程,获取树莓派上服务器的IP