为什么使用float时x,y的位置很重要?

C++ Why does the position of x,y matter while using float?

本文关键字:位置 float 为什么      更新时间:2023-10-16

所以,我不知道如何解释这个。我是一个c++新手,如果有人能给我解释一下,我会很感激。我写float y,x而不是float x,y,程序工作得很好。编译器没有报告任何错误,但是程序没有做它被指示做的事情。它忽略了整个'while'循环,直接执行到末尾。我通过改变x和y的位置来固定它,但是为什么x,y的位置会产生差异?

        #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; }

位置无关紧要。float x, y;float y, x;一样。这里重要的是,您的程序是病态的,因此您不能依赖输出。你检查x != 0,但x还没有初始化,这是未定义的行为。你可能指的是y != 0

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

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