C++语言中如何将三个数由大到小排列

作者&投稿:栋姿 (若有异议请与网页底部的电邮联系)
C++指针问题,实现3个数从大到小排列~

假设输入的是 1 2 3,则*p1 == 1, *p2 == 2。
现在它满足了第一个判断,于是调用了swap函数。
当进入到swap函数的时候,创建了三个局部指针变量:p,q,t,其中p指向了p1,q指向了p2,
即p的值是a的地址,q的值是b的地址,而这个函数体里面交换的是p和q所指向的地址,也就是p的值变成了b的地址,q的值变成了a的地址,而p1和p2所指向的仍然是a和b,没有变,仅仅改变的是函数体内所创建的指针p和q的所指的地址而已。
表达能力有限,解释的不好,看懂了么?
(交换地址没错,但是应该交换p1和p2的所指向的地址才是)
如果想交换地址:
#include

using namespace std;

void swap(int **p, int **q);

int main(void)
{
int a, b, c;
int *p1 = &a, *p2 = &b, *p3 = &c;

cout << "请输入3个数: ";
cin >> a >> b >> c;

if (*p1 < *p2)
{
swap(&p1, &p2);
}

if (*p1 < *p3)
{
swap(&p1, &p3);
}

if (*p2 < *p3)
{
swap(&p2, &p3);
}
cout << *p1 << " " << *p2 << " " << *p3 <<endl;
}

void swap(int **p, int **q)
{
int *t;

t = *p;
*p = *q;
*q = t; }

a>b>c的关系是先判断a〉b,如果a〉b,那么值就是1,如果ab的值与

c的大小。就是说拿0或者1与c作比较,如果大于c的话,那么a>b>c条件才为真,才执行这条if后的那个

输出语句。 你对括号里面的关系表达式理解不深哦。

#include <iostream>
using namespace std;
int main()
{
    int a,b,c,t;
    cin>>a>>b>>c;
    if(a<b) {t=a;a=b;b=t;}
    if(a<c){t=a;a=c;c=t;}
    if(b<c){t=b;b=c;c=t;}
    cout << a << ' '<< b <<' '<< c<<endl;
    return 0;
}


百度一下常用排序算法


c语言编程 输入三个字符串,存入字符数组中,然后分别将三个字符串打印...
include <stdio.h> int main(){ char a[3][20];char *p;int i;p=a[0];for (i=0;i<3;i++)gets(a[i]);\/\/ for (i=0;i<3;i++)printf("%s\\n",a[i]); \/\/ 可以直接用 a[i]:for (i=0;i<3;i++)printf("%s\\n",p+i*20); \/\/指针寻址 };...

c语言三角形三边求面积
2、计算半周长:计算半周长是海伦公式中一个重要的步骤,可以使用一个变量来存储这个结果。首先,将三角形的三条边长相加,然后除以2,即可得到半周长。这个变量可以用于后续的计算,方便快捷。在C语言中,可以使用一个变量来存储这个结果,例如:其中,a、b和c是三角形的三条边长。这个变量half_perimeter...

语言的三要素
语言的三要素:语音、 词汇和语法。传统语言学将其称作 “语言三要素”。词汇是语言里词和词的等价物的总汇, 是语言的建筑材料;语法是词的构成和变化规则和组词成句规则的总和, 是语言的 “间架”;语音是语言的物质外壳, 是词汇和语法的存在和表现形式。现代语言学则认为语言是由语音和语义、 词汇...

c语言如何编程比较三个数大小?
2、然后,再将第二个数和第三个数比较,同样,若大于则将它们互换。以1 2 3为例 先考虑我们所有的可能输入类型(这里不一一列举):1 2 3;3 2 1 ;2 1 3;1 1 1;1 2 2;1 2 1;整体的思路为输入三个数后,我们从中取两个数,在这两个数中选出最大的后将最大的数与第三个数...

c语言将一段字符数组的数字三个三个的输出怎么实现?
char s[] = "123456789";for (int i = 0; s[i]; i++){ if (i % 3 == 0 && i != 0)putchar(' ');putchar(s[i]);}

c语言编程中,怎样输入一个三位数,将其各位数字反序输出,如输入321,输...
include <iostream>#include <stdio.h>#include <math.h>#include <iomanip>using namespace std;int main(){int n;cin>>n;while(n!=0){cout<<n%10;n\/=10;}cout<<endl;return 0;}

vhdl语言中如何拆分 一个三位数,要具体的程序!如 shu=123。a=1,b=2...
给你个除以10的程序,只要把该三位数两次除以10,就可以拆分了!!library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity mod_10 is port(a:in std_logic_vector(7 downto 0);---输入,,,b:out std_logic_vector(4 downto 0);---商 r:out std_logic_ve...

在c语言中一个三位数如何运算得到它的十位
假设三位数为a,它的十位为b 则 b = a\/10%10;解释 a\/10得到后两位,再%10得到第二位。

c语言,求助大神! 从键盘上输入三个字符串,将这三个串从小到大排序。_百...
C的字符串是用字符数组操作的,所以排序应该用指针数组完成,以避免字符串拷贝。由于只有3个字符串,用直接操作的办法而不用循环以避免不必要的开销;输入函数选用fgets,既可以方便地控制输入长度不越界,又能允许字符串中存在空格。代码如下:include "stdio.h"#include "string.h"int main(int argc,...

c语言中如何将输出的数每三个换行且每行行末不得有空格
include <stdio.h>int main(){int i,n,a[10];scanf("%d",&n);for(i=0;i<n;i++)scanf("%d",&a[i]);for(i=0;i<n-2;i++){printf("%d",a[i]=a[i+1]-a[i]);printf((i+1)%3?" ":"\\n");\/\/实现行末无空格}printf("%d",a[n-2]);\/\/最后一个结果后面无空格...

曲阜市18628986700: C++语言中如何将三个数由大到小排列 -
岑露愈心: #include <iostream> using namespace std; int main() {int a,b,c,t;cin>>a>>b>>c;if(a<b) {t=a;a=b;b=t;}if(a<c){t=a;a=c;c=t;}if(b<c){t=b;b=c;c=t;}cout << a << ' '<< b <<' '<< c<<endl;return 0; }

曲阜市18628986700: C++输入3个整数从大到小排列 -
岑露愈心: #include"stdio.h" void main() { int a,b,c; printf("\nplease input three int numbers:"); scanf("%d%d%d",&a,&b,&c); if(a>b&&b>c) printf("%d%d%d",a,b,c); else if(a>c&&c>b) printf("%d%d%d",a,c,b); else if(b>a&&a>c) printf("%d%d%d...

曲阜市18628986700: 用c++程序 输入三个整数,然后按从大到小的顺序输出. -
岑露愈心: 你好,参考如下代码: #include <iostream> using namespace std;int main(){ int a,b,c; while(1) { cout<<"请输入3个数(-1结束):"<<endl; cin>>a; if(a == -1) break;cin>>b;cin>>c;if(a>b) { a=a+b; b=a-b; a=a-b; } if(b>c) { b=b+c; c=b-c; b=b-c; }cout<<c<<"\t"<<b<<"\t"<<a<<endl; } return 0; }

曲阜市18628986700: C++ 随机输入三个数 要求从大到小排列 代码怎么写 -
岑露愈心: #include<iostream.h> void swap(float* a,float* b) { float temp; if(*a<*b) { temp=*a; *a=*b;*b=temp; } } int main() { float x,y,z,temp; cin>>x>>y>>z; swap(&x,&y); swap(&x,&z); swap(&y,&z); cout<<x<<' '<<y<<' '<<z<<endl; }

曲阜市18628986700: C++ 3个数 从大到小排列 -
岑露愈心: 花括号里都是做交换,如果a>b,交换a b,如果a>c交换a c,那么a就是最小的了,如果b>c,交换b c,当然就有序了

曲阜市18628986700: 用C++编写一个程序,从键盘上输入三个整数,判断这三个数的大小,并将这三个数从大到 -
岑露愈心: #includeusing namespace std;int main(){int a,b,c,t;cout<<"请输入3个数,空格隔开:";cin>>a;cin>>b;cin>>c;t=a;if(a<<"从大到小的顺序为:"<<<","<<<","<<

曲阜市18628986700: 输入三个整数a,b,c,从小到大排序后输出. 怎么编程序..用c++语言.. -
岑露愈心: #includeint main() { int a,b,c,t; if(a>b) { t=b; b=a; a=t; } if(b>c) { t=b; b=c; c=t; } if(a>c) { t=c; c=a; a=t; } printf("%d %d %d\n",a,b,c); return 0; }

曲阜市18628986700: C++编程题:输入3个整型数,按由大到小的顺序输出显示! -
岑露愈心: #include<vector>#include<iostream>#include<algorithm> using namespace std; int main() { cout<<"Plese input three int numbers:"<<endl; vector<int> int_vec; int n; while(cin>>n) { int_vec.push_back(n); } sort(int_vec.begin(),int_vec.end()); ...

曲阜市18628986700: C++ 输入3整数,要求按由小到大顺序输出. 得到正确结果后,修改程序使之按由大到小顺序输出. -
岑露愈心: #include<stdio.h> #include<string.h> int main() { int i,j,k,temp; printf("请输入三个整数,并用空格隔开:\n"); scanf("%d %d %d",&i,&j,&k); //这里不应该出现中文逗号 if(i>j){ temp=i; i=j; j=temp; } if(i>k){ temp=i; i=k; k=temp; } if(j>k){ temp=j; ...

曲阜市18628986700: C++简单的编程题 从键盘输入任意三个数 用模板函数实现从小到大排序后输出 用c++语言 -
岑露愈心: template<class T> T g(T a, T b) { if(a>b){return b;} else return a; } void main() { int a,b,c; cin>>a>>b>>c; while(a==b||a==c||b==c){cout<<"请重新输入"<<endl; cin>>a>>b>>c;} //判断是否有输入相等的数. if(g(g(a,b),c)==a) //首先判断最小数是否是...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网