C ++试图确定最高和最低数字并得到一个长十进制数

时间:2015-12-13 22:34:03

标签: c++

我正在尝试从10个数字中输入您输入的最高和最低数字。确定最高数字可以正常工作,但是当我尝试应用相同的方法来获得最小数字时,我会继续得到这个数字,6.00758e-039。

我的班级标题:

import java.io.PrintWriter;
try { 
    PrintWriter writer = new PrintWriter("example.txt");
    writer.print("stuff in my .txt");
    writer.println();
    writer.close();
} catch(IOException e) {
}

这是我得到数字的类,并确定哪些数字高于和低于彼此。

 #ifndef GRADE_H
#define GRADE_H

using namespace std;

class Grade
{
    public:
        Grade();
        void getGrades();
        float detHighest();
        float detLowest();
    protected:
    private:
        float grades[10];
        int x;
        float z, y;
        float *highest, *lowest;
};

#endif // GRADE_H

2 个答案:

答案 0 :(得分:1)

班级成员“y”似乎未初始化。除非您没有显示其他代码,否则这是未定义的行为。当您第一次进入搜索最高或最低值的循环时,您将最终比较一个未初始化的类成员,其值将是随机二进制垃圾。

答案 1 :(得分:0)

使用指向未初始化变量的指针被认为是不好的做法。在教师中,您将两个指针的值设置为y和z的地址,但它们未初始化,因此它们都包含垃圾。解决问题的最简单方法是让两个浮点数包含最高值和最低值,但首先用-1初始化它们。要确定最高值,请将最高浮点数变量设置为第一等级的值,然后将其与每个等级进行比较,然后将其替换为更高等级。你可以添加一个if语句来测试函数是否返回-1然后出现错误。