小甲鱼的第二十一课指针,答案错了
输入三个数字,从小到大排序
#include <stdio.h>
int main()
{
int a, b, c;
int *d, *e, *f, *g;
printf("请输入三个数:");
scanf("%d%d%d", &a, &b, &c);
d = &a;
e = &b;
f = &c;
if (a > b)
{
g = d;
d = e;
e = g;
}
if (a > c)
{
g = d;
d = f;
f = g;
}
if (b > c)
{
g = e;
e = f;
f = g;
}
printf("%d <= %d <= %d\n", *d, *e, *f);
return 0;
}
输入 5 1 3,排序错误
大家快一起召唤小甲鱼修正下吧 @小甲鱼 看看下面的评分,第一条 BngThea 发表于 2018-12-28 16:38
看看下面的评分,第一条
好吧,看到了,小甲鱼童鞋怎么没有纠正一下呢
这首题答案不对的根本原因在于,用a b c 比效,但是交换的是指针。而a b c 的值,不管if到哪个位置还是原来的值。
所以 就算填出空白处也很麻烦。除非直接交换值。
题目本身有问 题。 #include <stdio.h>
int main()
{
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 = *pa;
*pa = *pb;
*pb = t;
}
if (a > c)
{
t = *pa;
*pa = *pc;
*pc = t;
}
if (b > c)
{
t = *pb;
*pb = *pc;
*pc = t;
}
printf("%d <= %d <= %d\n", *pa, *pb, *pc);
printf("%d <= %d <= %d\n", a, b, c);
return 0;
}
这个代码稍微修改了一下 不知道是不是符合楼主要求 小酒酒呢 发表于 2018-12-29 10:01
这个代码稍微修改了一下 不知道是不是符合楼主要求
哈哈,咱俩写的一样,我也是这样改进的
页:
[1]