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 に答える