c++-C++中用指针比较三个数的大小

问题描述

C++中用指针比较三个数的大小

#include
using namespace std;
void sort(int *x, int *y, int *z);
int main()
{
int a, b, c, a1, b1, c1;
cout << "Please enter 3 integers:";
cin >> a >> b >> c;
a1 = a, b1 = b, c1 = c;
sort(&a1, &b1,&c1);
cout << a << " " << b << " " << c << " " << "in sorted order is ";
cout << a1 << " " << b1 << " " << c1 << endl;
return 0;
}
void sort(int *x, int *y, int *z)
{
void change(int *i, int *j);
if (x>y)change(x, y);
if (x>z)change(x, z);
if (y>z)change(y, z);
}
void change(int *i, int *j)
{
int *f;
f = i;
i = j;
j = f;
}


不知道为什么运行没问题 可是就是比较不出结果
请赐教~

解决方案

 #include<iostream>
using namespace std;
void sort(int *x, int *y, int *z);
int main()
{
int a, b, c, a1, b1, c1;
cout << "Please enter 3 integers:";
cin >> a >> b >> c;
a1 = a, b1 = b, c1 = c;
sort(&a1, &b1,&c1);
cout << a << " " << b << " " << c << " " << "in sorted order is ";
cout << a1 << " " << b1 << " " << c1 << endl;
return 0;
}
void sort(int *x, int *y, int *z)
{
void change(int *i, int *j);
if (*x>*y)change(x, y);
if (*y>*z)change(y, z);
if (*x>*y)change(x, y);
}
void change(int *i, int *j)
{
int f;
f = *i;
*i = *j;
*j = f;
}

解决方案二:

看看你的代码,函数都没调用,全在主函数中直接输出了,你仅仅做了一次输出,没做任何操作。

解决方案三:

没有调用chang函数,肯定没法比较啊

解决方案四:

你比较的不是地址么?

解决方案五:

指针问题,你只是比较了地址,而非地址中的数

时间: 2024-09-17 04:45:25

c++-C++中用指针比较三个数的大小的相关文章

用一个数组、头指针和元素个数合在一起所构成的结构来存储顺序队列,设计算法以实现队列的各运算。

问题描述 用一个数组.头指针和元素个数合在一起所构成的结构来存储顺序队列,设计算法以实现队列的各运算. 用一个数组.头指针和元素个数合在一起所构成的结构来存储顺序队列,设计算法以实现队列的各运算. 解决方案 http://www.docin.com/p-524422606.html

java数组-Java计算排列组合 用java计算0,1,2,3这三个数每一行出现一个数,共有15行这样的数,如何求

问题描述 Java计算排列组合 用java计算0,1,2,3这三个数每一行出现一个数,共有15行这样的数,如何求 用java计算0,1,2,3这三个数每一行出现一个数,共有15行这样的数,如何求 解决方案 我觉得你的问题实在是很模糊,我刚好对java多线程懂一些,所以多问两句: 计算的是什么样的排列组合? 0,1,2,3 的 15行这样的数是哪样的数? 三个数? 每一行出现一个数? 麻烦解释一下~ 另外一个小建议:以后不要这样提问题啦~那些懂的人就算看到也会懒得回答的哦.提问要清晰明确~ 解决方

vb6.0-用VB 6.0输入三个数,用逗号分开,并且对它们进行排序运算

问题描述 用VB 6.0输入三个数,用逗号分开,并且对它们进行排序运算 完整的写法怎么写? 用VB6.0输入三个数,用逗号分开,并且对它们进行排序运算 解决方案 dim s() as string s = split(inputbox(), ",") dim i(0 to 2) as long dim x as long for x = 0 to 2 i(x) = val(s(x)) next if i(0) > i(1) then t = i(0) : i(0) = i(1)

c语言基础问题-三个数的四则运算用c语言怎么写。只要思路

问题描述 三个数的四则运算用c语言怎么写.只要思路 如何判断优先级来进行三个数的四则运算..只用printf scanf switch 和if语句.想了好久了计算器"> 解决方案 lz你读入运算的方式是什么啊,可以在这上面做一些判断 解决方案二: 四则运算(C语言)大数四则运算(C语言) 解决方案三: 根据题主要求,需要如下限制: 1.三个数以内的运算,需要进行输入数判断(即三个数以上的情况时要么直接截断不允许输入,要么输入无效化); 2.四则运算,需要对符号做判别,可用if或者switc

算12 三个数 加减乘除-在C语言环境下的算12问题

问题描述 在C语言环境下的算12问题 给定三个数,问你使用加减乘除能否得到12,要求三个数的顺序可以改变,计算的中间结果必须为整数.输入:输入三个整数,均大于0,小于1000.输出:输出为一个整数,当可以得到12时输出1,否则输出0.输入样例:2 2 3输出样例:1提示:输出格式:printf(""%dn""1);主要功能:(1)从文件中读出题目的输入:(2)向屏幕上打印出题目的计算结果. PS:最好能有多文件结构多函数结构,能有界面处理(这些我还不太会,所以只能附

交换问题-两个数交换,但不加入第三个数,对于这样的做法具体栈中是怎么一个顺序?

问题描述 两个数交换,但不加入第三个数,对于这样的做法具体栈中是怎么一个顺序? 两个数交换,但不加入第三个数,对于 int num1 =1; int num2 =2; System.out.println("交换前---num1="+num1+" num2="+num2); num2 = num1 +(num1 = num2)*0; System.out.println("交换后---num1="+num1+" num2="+

c语言-C中 将指针加三,但是打印出来的值,表示地址加三,而且指向值不变

问题描述 C中 将指针加三,但是打印出来的值,表示地址加三,而且指向值不变 ```#include char * point(char *p) { printf("P: %d", &p); p += 3; printf("p :%d", &p); return p; } int main() { char b[4] = { 'a', 'b', 'c', 'd' }; char *p = b; char *q; q = point(p); printf

请问怎样怎样将三个数排序.最简单的方法.

问题描述 请问怎样怎样将三个数排序.最简单的方法. 解决方案 解决方案二:System.Collections.ArrayListtest=newSystem.Collections.ArrayList();test.Add(2);test.Add(1);test.Add(3);test.Sort(); 解决方案三:用list<int>_list=newlist<int>好点!_list.sort();解决方案四:System.Collections.ArrayListtest=n

调试-java怎么解答三个数以上的整数排序

问题描述 java怎么解答三个数以上的整数排序 import java.util.Scanner; public class Exercise8 { private static Scanner input; public static void main(String[] args) { input = new Scanner(System.in); System.out.print("Enter three numbers:"); int num1 = input.nextInt(