永发信息网

C语言a,b,c三个整数按顺序输出

答案:1  悬赏:10  手机版
解决时间 2021-04-26 23:37
  • 提问者网友:浩歌待明月
  • 2021-04-26 05:06

哪里出的故障?

下面是我的源代码

#include <stdio.h>
#include<stdlib.h>
void main()
{
system("COLOR 3E");
void exchang(int ,int ,int );
int a,b,c;
printf("please input the numbers:");
scanf("%d%d%d",&a,&b,&c);
exchang(a,b,c);
printf("\n%d,%d,%d\n",a,b,c);

}

void exchang(int q1,int q2,int q3)
{
void swap(int ,int );
if(q1<q2) swap(q1,q2);
if(q1<q3) swap(q1,q3);
if(q2<q3) swap(q2,q3);

}
void swap(int pt1,int pt2)
{
int temp;
temp=pt1;
pt1=pt2;
pt2=temp;

}

a,b,c三个整数按从大到小顺序输出。先谢谢了!

最佳答案
  • 五星知识达人网友:未来江山和你
  • 2021-04-26 06:14

不说设计思路有没有问题,但是先告诉你,函数的形参属于局部变量,它的变化是不会影响调用者的,所以你在void swap(int pt1,int pt2)里时行交换,只是Swap内部交换了而已,调用者里的Q1,Q2,q3是没改变的,a,b,c也没有,你要把它们定义成指针才行.void exchang(int * q1,int *q2,int *q3)



#include <stdio.h>
#include<stdlib.h>
void main()
{
system("COLOR 3E");
void exchang(int ,int ,int );
int a,b,c;
printf("please input the numbers:");
scanf("%d%d%d",&a,&b,&c);
exchang(&a,&b,&c);
printf("\n%d,%d,%d\n",a,b,c);


}


void exchang(int *q1,int *q2,int *q3)
{
void swap(int *,int* );
if(*q1<*q2) swap(q1,q2);
if(*q1<*q3) swap(q1,q3);
if(*q2<*q3) swap(q2,q3);


}
void swap(int *pt1,int* pt2)
{
int temp;
temp=*pt1;
*pt1=*pt2;
*pt2=temp;


}


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