c - 我在调试 Visual Studio 2015 时遇到错误

标签 c

<分区>

"Run-Time Check Failure #3 - The variable 'sum' is being used without being initialized."

我该如何修复这个错误?

#include <math.h>
#include <stdio.h>
int perfect_in_pow(int num) {
    int nn = 0;  // THE NUMBER OF THE DIGITS IN THE NUMBER
    int temp;  // USED TO SEPERATE A DIGIT FROM THE ENTIRE NUMBER
    int temp2; // USED TO CALCULATE TO NUMBER OF TIMES THAT WE NEED TO ADD 1 TO "nn"
    int temp3; // USED TO SAVE THE ORIGINAL ENTERED NUMBER'S VALUE
    int power; // USED TO CALCULATE EACH DIGIT TO THE POWER OF "nn"
    int sum;   // THE SUMMERY OF THE "power" CALCULATION FOR EACH DIGIT
    int ii;    // USED IN THE FOR LOOP
    temp2 = num;
    temp3 = num;
    do {    // USED TO CALCULATE THE NUMBER OF THE DIGITS IN THE NUMBER
        nn += 1;
        temp2 = temp2 / 10;
    } while (temp2 > 0);
    while (num>0) {    // USED TO CALCULATE THE SUMMERY 
        for (ii = 0; ii<nn; ii++) {
            temp = num % 10;
            power = pow(temp, nn);
            sum += power;
            num = num / 10;
        }
    }
    if (temp3 == sum) {
        return 1;
    }
    else {
        return 0;
    }
}

void main() {
    int num;
    printf("Enter a number ");
    scanf("%d", &num);
    printf("%d", perfect_in_pow(num));
}

我们将不胜感激。谢谢。

最佳答案

您必须初始化变量“sum”。您只是声明了它。 您应该了解初始化和声明。

问题是当 sum 没有定义任何值时,编译器不知道如何将“power”添加到“sum”变量。你会怎么做?当有人要求您将 1000 加到您不知道的值时。

在你的情况下,只需这样做:

int sum=0;

就这样吧

关于c - 我在调试 Visual Studio 2015 时遇到错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49769641/

相关文章:

c++ - 邻接表中的深度优先或广度算法

c - qsort() : Sorting only even numbers of an array

c - 了解 glibc 源代码约定

c++ - 每次我们编译该程序时,编译器是否会编译所有包含的头文件以及主程序?

c - 二维整数数组中的最大元素数

C 使用 typedef 限制

c - 我该如何解决这个问题

c - sleep 命令没有按照我的预期执行

c - c语言小数点右移

C 和 Windows API : Changing Color Of Static Controls Which Are Child Of A Tab Control