永发信息网

为什么这个程序总报错

答案:2  悬赏:80  手机版
解决时间 2021-04-15 23:44
  • 提问者网友:不爱我么
  • 2021-04-15 05:30

输入三个数,从小到大排列

#include<stdio.h>
void main()
{
void f(int *x,int *y,int *z);
int a,b,c;
int *pot1,*pot2,*pot3;
printf("请输入a,b,c的值\n");
scanf("%d%d%d",&a,&b,&c);
pot1=&a;
pot2=&b;
pot3=&c;
f(pot1,pot2,pot3);
printf("%d %d %d \n",a,b,c);
}
void f(int *x,int *y,int *z)
{
void swap(int *p1,int *p2);
if(*x>*y)
swap(x,y);
if(*x>*z)
swap(x,z);
if(*y>*Z)
swap(y,z);
}
void swap(int *p1,int *p2)
{
int n;
n=*p2;
*p2=*p1;
*p1=n;
}
编译总是通不过去?请高人指导

最佳答案
  • 五星知识达人网友:持酒劝斜阳
  • 2021-04-15 07:02

你不要把函数的定义放在另一个函数里。我帮你改了一下就OK了


#include<stdio.h>
void f(int*x,int *y,int*z);
void swap(int *p1,int *p2);//函数定义要放在这里。
int main()
{
int a,b,c;
int *pot1,*pot2,*pot3;
printf("请输入a,b,c的值\n");
scanf("%d%d%d",&a,&b,&c);
pot1=&a;
pot2=&b;
pot3=&c;
f(pot1,pot2,pot3);
printf("%d %d %d \n",a,b,c);
return 0;
}
void f(int *x,int *y,int *z)
{
if(*x>*y)
swap(x,y);
if(*x>*z)
swap(x,z);
if(*y>*z)
swap(y,z);
}
void swap(int *p1,int *p2)
{
int n;
n=*p2;
*p2=*p1;
*p1=n;
}

全部回答
  • 1楼网友:笑迎怀羞
  • 2021-04-15 07:14

输入三个数,从小到大排列

#include<stdio.h> void main() { void f(int *x,int *y,int *z); int a,b,c; int *pot1,*pot2,*pot3; printf("请输入a,b,c的值\n"); scanf("%d%d%d",&a,&b,&c); pot1=&a; pot2=&b; pot3=&c; f(pot1,pot2,pot3); printf("%d %d %d \n",a,b,c); } void f(int *x,int *y,int *z) { //void swap(int *p1,int *p2); //申明出错 if(*x>*y) swap(x,y); if(*x>*z) swap(x,z); if(*y>*Z) swap(y,z); } void swap(int *p1,int *p2) { int n; n=*p2; *p2=*p1; *p1=n; }

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯