C语言练习题.输入3个整数,按从大到小的次序输出.要求用指针变量来处理3个整数.

2024-11-24 01:53:20
推荐回答(1个)
回答1:

#include
void main()
{
int i,j,a[3],*p[3],*x;

for(i=0;i<3;i++)
{
p[i]=&a[i];
scanf("%d",&a[i]);
}

for(i=0;i>3;i++) //此处程序段有错
{ //
for(j=i;j>2;j++) //
{ //
if(p[j]>p[j+1]) //
{
x=p[j];
p[j]=p[j+1];
p[j+1]=x;
}
}
}
printf("%d>%d>%d",*p[0],*p[1],*p[3]);//此处有错

参考程序如下:
#include
void main()
{
int i,j,a[3],*p[3],*x;

for(i=0;i<3;i++)
{
p[i]=&a[i];
scanf("%d",&a[i]);
}
printf("%d,%d,%d",*p[0],*p[1],*p[2]);
printf("\n");
for(i=0;i<2;i++)
{
for(j=i+1;j<3;j++)
{
if(*p[i]<*p[j])
{
x=p[i];
p[i]=p[j];
p[j]=x;
}
}
}
printf("%d>%d>%d",*p[0],*p[1],*p[2]);
}

}