c++中比较两个或者三个数的大小,为什么输入的值不进行交换,a输入的是几,输出的还是几,代码如下,高手帮帮
#include<iostream>usingnamespacestd;intmax(inta,intb){if(a>b)returna;elsereturnb;}int...
#include<iostream>
using namespace std;
int max(int a,int b)
{if(a>b) return a;
else return b;
}
int max(int a,int b,int c)
{if(b>a) a=b;
if(c>a) a=c;
return a;
}
int main()
{int a,b,c,d;
cout<<"请选择所比较数的个数 (2或3)"<<endl;
cin>>d;
if(d=2)
{cin>>a>>b;
int e;
e=max(a,b);
}
else
{cin>>a>>b>>c;
int f;
f=max(a,b,c);
}
cout<<"max="<<a<<endl;
return 0;} 展开
using namespace std;
int max(int a,int b)
{if(a>b) return a;
else return b;
}
int max(int a,int b,int c)
{if(b>a) a=b;
if(c>a) a=c;
return a;
}
int main()
{int a,b,c,d;
cout<<"请选择所比较数的个数 (2或3)"<<endl;
cin>>d;
if(d=2)
{cin>>a>>b;
int e;
e=max(a,b);
}
else
{cin>>a>>b>>c;
int f;
f=max(a,b,c);
}
cout<<"max="<<a<<endl;
return 0;} 展开
5个回答
展开全部
main里面的代码写喊冲错了,改为:
int main()
{
int a,b,c,d;
cout<<"请选择所比较数的个数 (2或3)"<<endl;
cin>>d;
if(d=2)
{
cin>>a>>b;
a=max(a,b);//去掉int e,同时把e=max(a,b);改为a=max(a,b);
}
else
{
cin>>a>>b>>c;
a=max(a,b,c);//去掉int f,同时把f=max(a,b);改为a=max(a,b);
}
cout<<"芹缺max="<<a<<嫌渗辩endl;
return 0;
}
int main()
{
int a,b,c,d;
cout<<"请选择所比较数的个数 (2或3)"<<endl;
cin>>d;
if(d=2)
{
cin>>a>>b;
a=max(a,b);//去掉int e,同时把e=max(a,b);改为a=max(a,b);
}
else
{
cin>>a>>b>>c;
a=max(a,b,c);//去掉int f,同时把f=max(a,b);改为a=max(a,b);
}
cout<<"芹缺max="<<a<<嫌渗辩endl;
return 0;
}
展开全部
用指针或引用传值,否则不改变原来的值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的返回值,没有返回到a里边。所以a 的值没有变。
#include<iostream>
using namespace std;
int max(int a,int b)
{
if(a>b)
return a;
else
return b;
}
int max(int a,int b,int c)
{
if(b>a) a=b;
if(c>a) a=c;
return a;
}
int main()
{
int a,b,c,d;
cout<<"请选择所比银塌较棚悄数的个数 (2或3)"<<endl;
cin>>d;
if(d=2)
{
cin>>a>>b;
int e;
a=max(a,b);
}
else
{
cin>>a>>b>>链搏渣c;
int f;
a=max(a,b,c);
}
cout<<"max="<<a<<endl;
return 0;}
#include<iostream>
using namespace std;
int max(int a,int b)
{
if(a>b)
return a;
else
return b;
}
int max(int a,int b,int c)
{
if(b>a) a=b;
if(c>a) a=c;
return a;
}
int main()
{
int a,b,c,d;
cout<<"请选择所比银塌较棚悄数的个数 (2或3)"<<endl;
cin>>d;
if(d=2)
{
cin>>a>>b;
int e;
a=max(a,b);
}
else
{
cin>>a>>b>>链搏渣c;
int f;
a=max(a,b,c);
}
cout<<"max="<<a<<endl;
return 0;}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
废话,你定义的两个函数就是求最值的,在函数体内交换,那可不管用,
有个有效域的问题在里面
有个有效域的问题在里面
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <iostream.h>
class Mian
{
public:
int c;
void change(int& a,int& b)
{
if (a<b)
{
c=a;
a=b;
b=c;
}
}
};
void main()
{
int x;
int y;
cin>>x>>y;
Mian m;
m.change(x,y);
cout<<x<<" "<<y;
}
如果对敬喊您有帮助,请记得采纳为满渗纤意答案,谢谢!祝丛稿仿您生活愉快!
class Mian
{
public:
int c;
void change(int& a,int& b)
{
if (a<b)
{
c=a;
a=b;
b=c;
}
}
};
void main()
{
int x;
int y;
cin>>x>>y;
Mian m;
m.change(x,y);
cout<<x<<" "<<y;
}
如果对敬喊您有帮助,请记得采纳为满渗纤意答案,谢谢!祝丛稿仿您生活愉快!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询