c - 用 C 编程将整数中的每个数字相加

标签 c algorithm

<分区>

int main(){
    int x;
    int sum;

    printf("Enter a positive integer: ");
    scanf("%d", &x);

    do{

        sum += (x%10);
        x=(x/10);

        if((x/10)==0){
            sum += x;
        }
    }
    while((x/10)!=0);

    printf("%d",sum);
}

嘿,我试图让它把输入的整数中的每个数字相加,但我使用的代码总是返回错误的输出。有人能帮我修正方程式/代码吗,因为我不确定为什么输出不正确。

最佳答案

在你的代码中

int sum;

未初始化。使用类似的东西

int sum = 0;

注意:局部变量不会自动初始化 [0 或任何],如果没有显式初始化,它们的内容将是垃圾。因此,使用sum += (x%10); 将导致read before-write 场景,产生错误的结果。

关于c - 用 C 编程将整数中的每个数字相加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28244234/

相关文章:

python - 将二进制数据从 Python 传递到 C API 扩展

char [] 作为 C 中的返回类型

c - while 循环中的 switch 语句

c - 用内存表示查询?

python - 需要帮助根据比赛表创建联赛时间表

当 int 变量在循环内更新时,C 代码不起作用

c++ - 确定两个字符串是否因相邻字符交换而不同的最快方法? C++

c++ - 无与伦比的井字游戏

java - 矩阵操作 : logic not fetching correct answer for higher order NXN matrix data

计算相交盘数的算法