永发信息网

这代码哪里错了 ?

答案:3  悬赏:80  手机版
解决时间 2021-05-22 08:48
  • 提问者网友:相思似海深
  • 2021-05-21 18:14

#include<stdio.h>
void main()
{
int a,b,c,max;
int *p1,*p2,*p3;
*p1=&a;
*P2=&b;
*p3=&c;
scanf("%d,%d,%d",&a,&b,&c);

if(*p1>*p2&&*p1>*p3)
{
printf("%d",*p1);
}
else if(*p2>*p1&&*p2>*p3)
{
printf("%d",p2);
}
else if(*p3>*p1&&*p3>*p2)
{
printf("%d",p3);
}


}

最佳答案
  • 五星知识达人网友:从此江山别
  • 2021-05-21 18:46

#include< stdio.h >
main()
{
int a, b, c, max;
int *p1, *p2, *p3;



p1 = &a; //指针指向变量. 所以不要解引用符*
p2 = &b;
p3 = &c;
scanf( "%d,%d,%d", &a, &b, &c );
//如果加了,那么输入三个数值中间就要以逗号分隔. 如输入1,2,3

if( *p1 > *p2 && *p1 > *p3 )
{
printf( "%d", *p1 );
}
else if( *p2 > *p1 && *p2 > *p3 )
{
printf( "%d", *p2 ); //输出缺少解引用符*,所以输出的是地址!
}
else if( *p3 > *p1 && *p3 > *p2 )
{
printf( "%d", *p3 ); //同上
}

}

全部回答
  • 1楼网友:西风乍起
  • 2021-05-21 19:48
指针就是你可以把它看成是一个变量的地址。 如果p是指针,那*p就是它所指的变量值。
  • 2楼网友:蕴藏春秋
  • 2021-05-21 19:40
p1=&a; //这3个只是地址赋值,所以不带"*" P2=&b; p3=&c; scanf("%d%d%d",&a,&b,&c); //3个%d之间不能有逗号。这个函数要放到p1=&a;前面,因为在没有a,b,c之前就没有它们的地址。 后面两个printf("%d",*p2)少了"*"。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯