输入三个整数,按从小到大顺序输出(C++)

#include <iostream>
using namespace std;
void chang(int ,int);
int main()
{
int a,b,c;
a=2;
b=3;
c=1;
/*cout<<"请您输入三个整数:"<<endl;
cin>>a;
cin>>b;
cin>>c;*/
chang(a,b);
chang(a,c);
chang(b,c);
cout<<a<<" "<<b<<" "<<c<<endl;
return 0;
}
void chang(int x,int y)
{
int k;
if(x>y)
{
k=x;
x=y;
y=k;
}
}
请问哪里出错了,谢谢!

原程序中所定义的函数void chang(int x,int y)参数传递为传值方式,因此数据交换后不能返回给调用函数,现在改为引用,传递给chang函数的是两个变量x,y的地址,在函数中所做的变量修改实际是对x,y变量的修改。另外chang函数中if(x>y)语句有误,应该改为if(x<y)
程序已经过测试

#include <iostream>
using namespace std;
void chang(int& ,int&);
int main()
{
int a,b,c;
a=2;
b=3;
c=1;
/*cout<<"请您输入三个整数:"<<endl;
cin>>a;
cin>>b;
cin>>c;*/
chang(a,b);
chang(a,c);
chang(b,c);
cout<<a<<" "<<b<<" "<<c<<endl;
return 0;
}
void chang(int& x,int& y)
{
int k;
if(x<y)
{
k=x;
x=y;
y=k;
}
}
若满意请及时采纳,谢谢
温馨提示:内容为网友见解,仅供参考
第1个回答  2014-11-02

你chang函数里面的变量生命周期只在函数内,不会对外面造成影响,所以要用到指针。

#include <iostream>
using namespace std;
void chang(int *x, int *y);
int main() {
int a, b, c;
int *pa = &a, *pb = &b, *pc = &c;
a = 2;
b = 3;
c = 1;
/*cout<<"请您输入三个整数:"<<endl;
 cin>>a;
 cin>>b;
 cin>>c;*/
chang(pa, pb);
chang(pa, pc);
chang(pb, pc);
cout << a << " " << b << " " << c << endl;
return 0;
}
void chang(int *x, int *y) {
int k;
if (*x > *y) {
k = *x;
*x = *y;
*y = k;
}
}

第2个回答  2014-11-02
这就涉及到局部变量的关系了 change函数中的形参,函数内部大小改变了,但只是局部改了,这里你可以改成引用 change(int @x,int @y)

输入三个整数,按从小到大顺序输出(C++)
程序已经过测试 include <iostream> using namespace std;void chang(int& ,int&);int main(){ int a,b,c;a=2;b=3;c=1;\/*cout<<"请您输入三个整数:"<<endl;cin>>a;cin>>b;cin>>c;*\/ chang(a,b);chang(a,c);chang(b,c);cout<<a<<" "<<b<<" "<<c<<endl;return ...

输入三个整数,按从小到大的顺序输出
解题思路:此题采用依次比较的方法排出其大小顺序。任一客户端可以方便地得到服务器上的文件的任意版本(如果有权限的话)。一般还实现了一个重要的功能是版本比较,任一客户端可以利用版本控制工具对某文件的不同版本进行版本比较,它会标记出不同版本的同名文件的不同点,可以轻易地看出版本内容的演化,...

C++编程:输入三个整数,并按大小顺序输出
else {max=a;mid=c;min=b;} C++不仅拥有计算机高效运行的实用性特征,同时还致力于提高大规模程序的编程质量与程序设计语言的问题描述能力。

C++编程:输入三个整数,并按大小顺序输出
C++编程中的一个常见任务是处理整数的排序。当需要输入三个整数a、b和c,然后按从小到大的顺序输出时,可以使用以下逻辑来实现:首先,比较a和b,如果a小于b(ab成立),则判断b和c的大小。如果b大于c(bc成立),说明c是当前最小值,b是中间值,a是最大值。否则,如果a大于c(ac成立),则b是...

c++三个数排序 键盘输入三个数字,输出结果从大到小排序(用if类型)
在C++编程中,当需要键盘输入三个整数并按从大到小的顺序输出时,可以借助条件语句来实现。下面是一个简单的代码示例:首先,我们定义三个整数变量a、b和c,以及一个临时变量t,用于交换数值:cpp int a, b, c, t;cout << "请输入三个整数: ";cin >> a >> b >> c;接着,通过if语句对...

C++语言编程:输入三个数,从小到大输出。
int min(int m,int n) { return((m > n) ? n : m); } int main() { int a,b,c;printf("请输入三个整数(逗号隔开): ");scanf("%d,%d,%d",&a,&b,&c);if(a > b) { if(b > c) printf("%d %d %d\\n\\n",c,b,a);else if(a > c) printf("%d %d %d\\n\\n",...

c++语言编程:输入三个整数,要求按照由小到大的顺序输出
include <iostream> \/\/头文件using namespace std; void swap(int *p1,int *p2); \/\/用于交换2个变量的功能函数int main(){ int n1,n2,n3; int *p1,*p2,*p3; cout<<"请依次输入3个整数:"; cin>>n1>>n2>>n3; p1=&n1; p2=&n2; p3=&n3; if(n1>n2) swap(...

C++输入三个数,由小到大顺序输出
可以采用排序算法,比如冒泡排序。或者直接找出最大值和最小值,然后从小到大输出。int min=INT_MAX int max=INT_MIN int mdium if(num<min)min=num if(num>max)max=num cout<<min<<medium<<max

c++编程;如何用if语句实现从键盘输入3个整数按从大到小的顺序输出?_百 ...
p1, p3); if (*p2 > *p3)swap(p2, p3); } int main() { void exchange(int *p1, int *p2, int *p3); int *p1, *p2, *p3, a, b, c; printf("请输入三个数\\n"); scanf_s("%d,%d,%d", &a, &b, &c); p1 = &a;...

...由键盘输入的三个数大小,并按从小到大依次输出,请问如何实现?_百度...
1、首先,定义4个整型变量,保存输入数字的各位数值。2、定义两个整型变量,保存输入的4位数和求反输出的数。3、接着,在窗口中输入要求反的4位数。4、将输入的4位数,在窗口中输出。计算4位数最高位上的数,保存在变量t中。5、最后运行程序,输入一个4位数字后,在输出窗口反向输出该数,就完成...

相似回答