C++为什么使用浮点数时,x、y的位置是重要的?

C++为什么使用浮点数时,x、y的位置是重要的?,c++,C++,所以,我不知道该怎么解释。我是C++新手,如果有人能给我解释一下,我会很感激。我写了float y,x而不是float x,y,程序运行得很好。编译器没有报告任何错误,但程序没有按照指示执行。它忽略了整个“while”循环,直接走到了终点。我通过改变x和y的位置来修正它,但是为什么x,y的位置会有不同呢 位置一点也不重要。浮动x,y;与浮点y,x;相同;。 这里重要的是你的程序格式不正确,因此你不能依赖输出。 你检查x!=0但x尚未初始化,这是未定义的行为。你的意思可能是y!=0。在使用whil

所以,我不知道该怎么解释。我是C++新手,如果有人能给我解释一下,我会很感激。我写了float y,x而不是float x,y,程序运行得很好。编译器没有报告任何错误,但程序没有按照指示执行。它忽略了整个“while”循环,直接走到了终点。我通过改变x和y的位置来修正它,但是为什么x,y的位置会有不同呢


位置一点也不重要。浮动x,y;与浮点y,x;相同;。 这里重要的是你的程序格式不正确,因此你不能依赖输出。
你检查x!=0但x尚未初始化,这是未定义的行为。你的意思可能是y!=0。

在使用while循环中的比较之前,应该初始化x和y变量。否则,它只是随机的,如果它工作


此外,您应该将您的浮点变量与浮点值0.0进行比较,而不仅仅是0

使用未初始化的变量会导致未定义的行为。声明的顺序没有区别。区别在于使用未初始化的变量。您忘记给x赋值了。此外,不应比较浮点值是否相等。“你会失望的。”科迪格雷我想他会给输入赋值
        #include <cstdlib>
        #include <iostream>

        using namespace std;

        int main() 
        {

        float x,y;  /*This is the problem. Why does float y,x make a difference?*/

        int s=0;
        int s1=0;
        int max=0;


        cout<<"Unesi stanje racuna:"<<endl;
        cin>>y;


        while(x!=0)
        { 

                    cout<<"Unesi vrijednost:"<<endl; 
                    cin>>x;

                    max==x;


                   if (x>0) s=s+x;
                   if (x<0) s1=s1+x;
                   if(x>max) max=x; 
         }


        cout<<"suma pozitivnih :"<<s<<endl;
        cout<<"suma negativnih :"<<s1<<endl;
        cout<<"najveci unos je :"<<max<<endl;
        cout<<"ukupno stanje je: "<<s+s1+y<<endl;

        return 0; }