楼主: miaomiaomh
673 0

[作业] c语言 指针和位操作符的综合应用 [推广有奖]

  • 0关注
  • 0粉丝

等待验证会员

小学生

42%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
50 点
帖子
4
精华
0
在线时间
0 小时
注册时间
2018-5-20
最后登录
2018-5-20

楼主
miaomiaomh 发表于 2025-11-28 14:32:10 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

输入三个整数,使用指针与函数实现从小到大排序输出

本题要求输入三个整数,通过运用指针和函数的相关知识,将这三个数字按升序排列并输出。以下是一种不借助中间变量、结合指针操作的实现思路。

核心思想是直接通过指针访问和比较变量的地址值,并在必要时交换指针所指向的内容,从而完成排序。该方法避免了传统方式中使用临时变量进行数值交换的过程,更加体现指针对内存操作的灵活性。

void Sort(int a[])
{
	int* p1 = a;

	int i = 0;
	int j = 0;
	for (i = 0; i <= 1; i++)
	{
		for (j = 1; j <= 2 - i; j++)
		{
			if (*(p1 + i) > *(p1 + i + j))
			{
				*(p1 + i) = *(p1 + i) ^ *(p1 + i + j);
				*(p1 + i + j) = *(p1 + i) ^ *(p1 + i + j);
				*(p1 + i) = *(p1 + i) ^ *(p1 + i + j);
			}
		}
	}

	for (i = 0; i < 3; i++)
	{
		printf("%d ", *(p1 + i));
	}
}

int main()
{
	int a[3] = { 0 };
	int* p = a;
	scanf("%d %d %d", p, p+1, p+2);

	Sort(a);

	return 0;
}

具体实现中,可以定义一个排序函数,传入三个整型变量的指针,在函数内部通过多重条件判断,利用指针解引用的方式直接修改原始变量的值,最终实现由小到大的输出顺序。

虽然此方法在逻辑上稍显复杂,但有助于深入理解指针与函数参数传递机制。若读者有更简洁高效的方案,也欢迎交流探讨。

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:综合应用 操作符 C语言 中间变量 从小到大

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
扫码
拉您进交流群
GMT+8, 2026-2-7 09:31