0

这是我的程序不工作的代码。这个程序必须计算第二个数字的第一个数字的结果。问题出在哪里?

#include <iostream>
    int main()
    {
        std::cout << "iveskite betkoki skaiciu" << std::endl;
        // "enter number:"
        int v1;
        std::cin >> v1;
        std::cout << "iveskite skaiciu kiek kartu jus norit pakelti pirmaji skaiciu" << std::endl;
        // "Enter the number of times you want to raise the first number"
        int v2;
        std::cin >> v2;
        int rez;
        // result
        for (int cnt = 0; cnt != v2; ++cnt)
            rez *= v1;  //  rez = rez * v1;
        std::cout << v1
                  << " pakeltas "
                  << v2 << " kartu ,yra: /t"
                  << rez << std::endl;
        return 0;
    }
4

2 回答 2

4

您没有初始化rez,因此行为未定义。

你应该有int rez = 1;和治疗的情况v1 == 0

于 2012-09-14T13:15:46.383 回答
2

你没有初始化rez;C++ 不会为您这样做,rez很可能仍会包含一些随机数,因此您的程序很可能会输出一个随机数(但实际上它是未定义的行为);您应该将其初始化为 1,例如

int rez = 1;

或者,在您的简单情况下,您可以使用v1' 值对其进行初始化:

int rez = v1;
于 2012-09-14T13:15:43.577 回答