我已经搜索了临时变量的意思但我不能&我无法理解。我已经完成了没有临时变量的if-else结构,现在我正在尝试if-else结构和一个临时变量。我找不到差异。
问题是
我已经完成了第一个问题。
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
int a,b,c;
cout<<"a : ";
cin>>a;
cout<<"b : ";
cin>>b;
cout<<"c : ";
cin>>c;
if(a>b && a>c)
{
cout<<"largest : "<<a;
}else{
if(b>a && b>c)
{
cout<<"largest : "<<b;
}else{
if(c>a && c>b)
{
cout<<"largest : "<<a;
}else{
cout<<"error!";
}
}
}
getch();
return 0;
}
但是第二个问题是这样的吗?
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
int a,b,c;
int max;
cout<<"a : ";
cin>>a;
cout<<"b : ";
cin>>b;
cout<<"c : ";
cin>>c;
if(a>b && a>c)
{
max=a;
cout<<"largest : "<<max;
}else{
if(b>a && b>c)
{
max=b;
cout<<"largest : "<<max;
}else{
if(c>a && c>b)
{
max=c;
cout<<"largest : "<<max;
}else{
cout<<"error!";
}
}
}
getch();
return 0;
}
我只是想确认一下,因为我并不完全明白临时变量是什么意思。 感谢。
答案 0 :(得分:2)
&#34;临时&#34;的确切含义可以变化,但在这种情况下,它只是一个变量而不是用于保存输入的变量。我认为一个更好的术语可能是&#34;中间&#34;。
当你只想找到三个值中最大的一个时,看到中间变量的优势有点困难,但想象一下你是否试图找到最多100个值。如果没有中间变量,你会怎么做?
答案 1 :(得分:0)
实际上,你已经完成了第二个问题,这是你的第一个结果。第二个版本(回答第一个问题)看起来应该更像这样:
int max;
if (a > b && a > c) max = a;
else if (b > a && b > c) max = b;
else max = c;
cout << max;
“临时”变量的目的是避免重复所有print语句,如第一个示例所示。
我不喜欢使用临时这个词。临时变量在C ++中具有特殊含义,与使用某些代码构造时由编译器隐式创建的变量完全相关。从这个意义上说,“max”不是一个临时变量。你的导师在使用术语时可能会松散。
答案 2 :(得分:0)
这个练习的重点可能是为了说明为什么临时变量是好的?如果是这样,也许这就是问题的提问者想要的:
int a, b, c;
...
// No temporary variable - your code is the simplest possible
if(a>b && a>c)
{
cout<<"largest : "<<a;
}else{
if(b>a && b>c)
{
cout<<"largest : "<<b;
}else{
if(c>a && c>b)
{
cout<<"largest : "<<a;
}else{
cout<<"error!";
}
}
}
// May use a temporary variable - code can be simplified
int max = a;
if (max < b)
max = b;
if (max < c)
max = c;
cout<<"largest : "<<max;
答案 3 :(得分:0)
实际上,&#34;临时&#34;你提到的变量不是真正的临时变量。在编译器的视图中,它只是一个中间变量。用户无法访问真正的临时文件,但对于编译器而言。