C++为什么使用浮点数时,x、y的位置是重要的?
所以,我不知道该怎么解释。我是C++新手,如果有人能给我解释一下,我会很感激。我写了float y,x而不是float x,y,程序运行得很好。编译器没有报告任何错误,但程序没有按照指示执行。它忽略了整个“while”循环,直接走到了终点。我通过改变x和y的位置来修正它,但是为什么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
位置一点也不重要。浮动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; }