|
发表于 2023-11-4 22:02:11
|
显示全部楼层
本楼为最佳答案
问题出在交换变量值的地方。在代码中,使用了一个未初始化的变量t来进行交换,导致报错。
正确的交换变量值的方法是使用一个临时变量来保存一个变量的值,然后再进行交换。以下是修改后的代码:
- #include <stdio.h>
- int main(void)
- {
- int a, b, c, t;
- int *pa, *pb, *pc;
- printf("请输入三个数:");
- scanf("%d %d %d", &a, &b, &c);
- pa = &a;
- pb = &b;
- pc = &c;
- if (a > b)
- {
- t = b;
- b = a;
- a = t;
- }
- if (a > c)
- {
- t = c;
- c = a;
- a = t;
- }
- if (b > c)
- {
- t = c;
- c = b;
- b = t;
- }
- printf("%d <= %d <= %d\n", *pa, *pb, *pc);
- return 0;
- }
复制代码
在交换变量值的地方,我们使用了临时变量t来保存需要交换的值。首先将b的值赋给t,然后将a的值赋给b,最后将t的值赋给a。同样的方法也用于交换a和c的值,以及b和c的值。
这样修改后,代码就能正确比较三个数的大小并输出结果了。 |
|