|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- #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)
- {
- b = t;
- b = a;
- a = t;
- }
- if (a > c)
- {
- c = t;
- c = a;
- a = t;
- }
- if (b > c)
- {
- c = t;
- c = b;
- b = c;
- }
- printf("%d <= %d <= %d\n",*pa,*pb,*pc);
- return 0;
- }
复制代码
问题出在交换变量值的地方。在代码中,使用了一个未初始化的变量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的值。
这样修改后,代码就能正确比较三个数的大小并输出结果了。
|
|