3个数从大到小排序用地址传递和值传递

问题描述

3个数从大到小排序用地址传递和值传递

3个数从大到小排序用地址传递和值传递(指针)
三个数从大到小分别用地址传递和值传递(指针)

解决方案

形参与实参,使用形参就是值传递方式,而实参则是地址传递。

解决方案二:

值传递排序后,他们的值不会改变

解决方案三:

说白了 就是 地址传递来排序就是 内存空间里 定义的这三个数它们不发生变化,用指针就相当于给它们贴标签,谁是第一谁是第二,指针按排序顺序逐个贴上标签。而值传递是,刚开始是乱序的,这三个数字的在内存里面的值要变化,是直接的比较。指针相当于间接比较,变的是对应的指针变量。综合来说,两个的区别是地址传递变的是三个指针变量储存的地址,值传递变的是内存空间三个数字变量的内容

解决方案四:

一个是
sort(int * a, int * b, int * c)
一个是
sort(int& a, int& b, int& c)

再定义一个临时变量t,排序代码如下

      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;
                }
时间: 2024-11-05 13:01:00

3个数从大到小排序用地址传递和值传递的相关文章

源代码-【二维字符数组】从键盘输入若干英文单词,单词最大长度不超过 15 个字母,把单词按照长度从大到小排序

问题描述 [二维字符数组]从键盘输入若干英文单词,单词最大长度不超过 15 个字母,把单词按照长度从大到小排序 用C语言来写,还没有学到指针,所以不要指针的写法,求大神给个源代码,我自己已经想了3个小时了还没有写出来. 解决方案 不用指针的话,没有办法动态分配内存,我们只能做一个假设,那就是键盘输入的单词不超过n(比如n=100,可以视作无限大) 至于排序,可以用冒泡都可以. 解决方案二: #include<string.h> #include<stdio.h> void main

iostream-程序目的是通过排序算法进行数组由大到小排序 但不同编译器运行结果不一致

问题描述 程序目的是通过排序算法进行数组由大到小排序 但不同编译器运行结果不一致 程序目的是通过排序算法进行数组由大到小排序 但不同编译器运行结果不一致 #include <iostream> #include <iomanip> //使用setw()函数 using namespace std;//定义无参函数 void bubble(int[], int); int main() { int arry[10] = {11, 4, 55, 6, 77, 8, 9, 0, 7, 1

sql-SQL Server查询 一个字段中不同值在另一个字段中分别出现的总个数,总个数从打到小排序?

问题描述 SQL Server查询 一个字段中不同值在另一个字段中分别出现的总个数,总个数从打到小排序? GoodsID Num A 4 B 2 C 1 A 3 B 4 C 3 我想得到: GoodsID Count A 7 B 6 C 4 用SQL Server语句如何实现?恳请行家高手不吝惜指点!万分感谢!! 解决方案 select sum(Num) as Count, GoodsID from table group by GoodsID 2015.05.28 17:16 解决方案二: s

foreach-link中从大到小排序的问题,这么写为什么输出不了?

问题描述 link中从大到小排序的问题,这么写为什么输出不了? public static void Main(){ int[] arr = {1620358}; paixu(arr);}public static void paixu(IEnumerable<int> arr){ if (arr.Count() == 0) return; int max=arr.Max(); foreach (int n in arr.Where(x=>x==max)) Console.WriteLi

c语言-C填空题:键盘上输入10个整数,程序按降序完成从大到小排序

问题描述 C填空题:键盘上输入10个整数,程序按降序完成从大到小排序 #include void sort(int *p,int *q) { int *max,*s; if(p>q)return; max=p; __ for(s=p+1;s<=q;s++)__ if()max=s; swap(); sort((),q); } void swap(int *x,int *y) { int temp; temp=*x; *x=*y; *y=temp; } void main() { int i,a

struct-求帮忙看看错在哪里,把输进去的数据从大到小排序

问题描述 求帮忙看看错在哪里,把输进去的数据从大到小排序 #include #include typedef struct student { char name[20]; int score; }STU; void sort(STU *aStu, int n) { int i,j; int temp; for(j=0;j { for(i=0;i { if(aStu[i].score>aStu[i+1].score) { temp=aStu[i].score; aStu[i].score=aSt

python 排序。利用txt每一行最后一个逗号后面的数字,来给txt每一行重新排序。按从大到小。

问题描述 python 排序.利用txt每一行最后一个逗号后面的数字,来给txt每一行重新排序.按从大到小. a.txt内容如下:xx是汉字. 2877,xx,xx,xx,xx,xx,xx,10 2878,xx,xx,xx,xx,xx,1264 2880,xx,xx,xx,xx,xx,xx,6 2881,xx,xx,xx,xx,xx,xx,xx,3 2882,xx,1 2883,xx,xx,xx,xx,5 解决方案 第一次在CSDN提问,新手,希望大神多指教!谢谢 解决方案二: python 用

python:按每一行最后一个数字的从大到小来给全部行排序,怎么实现?

问题描述 python:按每一行最后一个数字的从大到小来给全部行排序,怎么实现? a.txt内容如下.xx为汉字.若最后一个数字相同,则按每一行第一个数字为准从小到大排序 2877,xx,xx,xx,xx,xx,xx,10 2878,xx,xx,xx,xx,xx,1264 2880,xx,xx,xx,xx,xx,xx,6 2881,xx,xx,xx,xx,xx,xx,xx,248 2882,xx,1 2885,xx,xx,xx,xx,1 2886,xx,xx,xx,xx,5 2887,xx,xx

c语言实现输入一组数自动从大到小排列的实例代码_C 语言

如下所示: #include <stdio.h> main() { int x; printf("请输入要排序数字个数:"); scanf("%d",&x); int i,j,k,a,b,num[x]; printf("输入数据:"); for(i=0;i<x;i++) scanf("%d",&num[i]); for(j=0;j<x;j++) { for(k=j+1;k<x;k+