输入3个整数要求设计3个指针变量p1p2p3使p1指向3个数的最大者, p2指向次大者p3指向最小由大到小输出3个数

二楼有六处错误,不能运行啊,麻烦再给改一下啊
2025-05-15 12:25:51
推荐回答(3个)
回答1:

#include
int max(int x,int y);
int min(int x,int y);
int middle(int x,int y,int z);
void main()
{
int e,f,g;
int *p1,*p2,*p3;
printf("输入整数:\n");
scanf("%d%d%d",&e,&f,&g);
int i = max((max(e,f)),g);
int j = min((min(e,f)) ,g );
int m = middle(e,f,g);
p1 = &i;
p3 = &j;
p2 = &m;
printf("*p1 = %d\n*p2 = %d\n*p3 = %d\n",*p1,*p2,*p3);
}
int min(int x,int y)
{
int a,b,c;
a = x;
b = y;
if(a < b)
c = a;
else
c = b;
return c;
}
int max(int x,int y)
{
int a,b,c;
a = x;
b = y;
if(a >= b)
c = a;
else
c = b;

return c;
}

int middle(int x,int y,int z)
{
int a,b,c;
int d,e;
a = x;
b = y;
c = z;
d = max((max(a,b)),c);
e = min((min(a,c)),b);
if(a != d && a != e)
return a;
else if(b != d && b != e)
return b;
else if(c != d && c != e)
return c;
else
return 0;

}
我刚学习C ,程序挺乱的,但可以实现,很累啊,强烈要求给分 呵呵
但我这里没有错误阿,我用visual c++ 运行的阿,真的没错误,你先关闭所有的工作区间然后再重新建个工程(倒数第3项)和新的文件(c++ sourse file),然后再运行,有时候会和别的函数重复

回答2:

#include "iostream.h"
void main()
{
int *p1,*p2,*p3;
int a[3];
int temp;
cout<<"输入三个数:"<for(int i=0;i<3;i++)
cin>>a[i];
for(i=0;i<3;i++)
for(int j=i+1;j<=3-i;j++)
if(a[i]{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
p1=&a[0];
p2=&a[1];
p3=&a[2];
cout<<*p1<<*p2<<*p3<}
这样可以吧!先排序然后再把p1 p2 p3分别指向三个数.

回答3:

一楼的好