中易网

只是想知道用一下方法比较两个数的大小 C语言的

答案:3  悬赏:70  
解决时间 2021-04-27 20:22
  • 提问者网友:冰点阿弟
  • 2021-04-27 02:07
用循环语句(If ,do while都可以),数组,数组作为函数的参数(分支函数 )还有指针调用的方式
真的谢谢了 我是新手想看看全面的 好比较比较 真的谢谢了 留下一种都可以 谢谢~~~~
最佳答案
  • 二级知识专家网友:如果这是命
  • 2021-04-27 02:18
#include
main()
{ int a,b,c;
if(a>b)
printf("%d大于%d",&a,&b);
printf("("%d大于%d",&b,&a);
}
另一钟方法用单目运算符:
#include
main()
{ int a,b,c;
printf("请输入两个数:a=%d\nb=%d");
printf("\n");
scanf("%d,%d",&a,&b);
c=(a>b)?a:b;
printf("\n最大值为:%d",&c);
}
全部回答
  • 1楼网友:佛说妍妍很渣
  • 2021-04-27 04:24
a>b?a:b
  • 2楼网友:瘾与深巷
  • 2021-04-27 03:38
这三个函数实现的功能是交换两个数,但实际只有第一和第三种可以成功交换原来的传进来的实参,第二种交换的是形参的值,并不会改变实参的值         首先,要知道一点,函数调用的实质都是实参按值传递给形参,所以第一、二种函数接受的实参都是 int 类型两个数据,此处假设分别是 a 和 b ,而第三种函数接受的实参是一个 int 类型数据的地址,即为 &a 和 &b (此处的 & 表现为 “ 取地址符 ” ,在 c 语言中 & 具有多种功能,比如后面表现出来的 “ 引用符号” 的作用,这称作运算符的重载 )。         那么开始分析函数:         第一种,形参为 int & x 和 int & y(此处的 & 表现为 “ 引用符号 ” )         执行的操作为          int & x = a ;         int & y = b ;        其中 x 和 y 分别是 a 和 b 的引用, 如果我们把变量名理解为一段内存空间的标识符,那么引用可以理解对一段内存空间的另一个标识符,也就是说同一段内存空间可以用多个名字来标志。因为 x 和 a 表示的是同一内存空间的标识符,所以修改 x 所代表的内存空间的值就相当于修改 a 所代表的内存空间的值,y 与 b 的关系同理。                  第二种,形参为 int x 和 int y         执行的操作为         int x = a ;         int y = b ;        其中 x 和 y 都是局部变量,x 和 y 所代表的内存空间与 a 和 b 所代表的内存空间不同,这里把 a 和 b 所代表的内存空间的值通过赋值操作分别拷贝了一份,送给了 x 和 y所代表的内存空间,即 x 和 y 所代表的内存空间的值分别与 a 和 b 所代表的内存空间的值是相同的,但它们所代表的内存空间是不一样的,即内存空间的地址不同。所以交换 x 和 y 的内存空间的值并不会影响 a 和 b 的内存空间的值。         第三种,形参为 int * x 和 int * y         执行的操作为         int * x = &a ;         int * y = &b ;        其中 x 和 y 分别是指向了 a 和 b 的内存空间的指针,x 和 y 也是局部变量,所以跟第二种函数一样,他们与 a 和 b 的内存空间也是不一样的,但是不同点在于,x 和 y 的内存空间里所存储的值是 a 和 b 的地址。所以通过 *x 和 *y 来访问 a 和 b 空间里值,这里的 * 表示是 “ 间接访问符 ”(与 & 一样,也是 * 的一种重载),它的功能是把 x 和 y 空间中的值(a 和 b 的内存空间的地址)当作地址找到 a 和 b 的内存空间,因此 *x 与 a 是等价的,*y 与 b 是等价的。所以交换 *x 和 *y 的值 就是交换 a 和 b 的值。         最后,总结一下,第一种引用交换和第三种指针交换的区别在于,指针需要另外开辟新的空间来储存地址,而引用并不需要额外的空间。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息