C语言,,输入3个数,从小到大排序,,用指针做,

我这程序错在哪里了?#include"stdio.h"voidmain(){inta,b,c,*p1,*p2,*p3;scanf("%d,%d,%d",&a,&b,&c)... 我这程序错在哪里了?
#include "stdio.h"
void main()
{
int a,b,c,*p1,*p2,*p3;
scanf("%d,%d,%d",&a,&b,&c);
p1=&a;p2=&b;p3=&c;
{if(*p1<*p2)
{
p1=&a;p2=&b;}
else p2=&a;p1=&b;
}
{if(*p2>*p3)
{
p3=&a;p2=&c;}
else p2=&a;p3=&c;}
{if(*p1>*p2)
{
p1=&c;p2=&b;}
else p2=&c;p1=&b;}

printf("%d,%d,%d",*p1,*p2,*p3);

}
展开
 我来答
刺友互
高粉答主

2019-07-20 · 每个回答都超有意思的
知道答主
回答量:3979
采纳率:100%
帮助的人:114万
展开全部

1、打开visual C++ 6.0-文件-新建-文件-C++ Source File。

2、输入预处理命令和主函数:#include<stdio.h>       /*函数头:输入输出头文件*/void main()             /*空类型:主函数*/。

3、定义变量并输入3个数:int a,b,c,t;                                 /*定义变量的数据类型为整型*/

printf("输入3个数,中间用空格隔开:");       /*输出文字提示*/ scanf("%d%d%d",&a,&b,&c);                    /*输入3个数字*/。

4、判断数值大小:if(a<b)                         /*判断a是否小于b*/{t=a;a=b;b=t;}                  /*是,则a、b的值互换*/。

5、输出3个数从小到大和从大到小排列。

6、编译输出结果。

jk1194144043
2013-06-13 · TA获得超过397个赞
知道小有建树答主
回答量:373
采纳率:100%
帮助的人:178万
展开全部

#include <stdio.h>

void swep(int *a,int *b,int *c)

{

int tmp;

    if(*a>*b)

{

tmp=*a;

*a=*b;

*b=tmp;

}

if(*a>*c)

{

tmp=*a;

*a=*c;

*c=tmp;

}

if(*b>*c)

{

tmp=*b;

    *b=*c;

*c=tmp;

}

}

void main()

{

int a,b,c;

scanf("%d%d%d",&a,&b,&c);

swep(&a,&b,&c);

printf("%4d%4d%4d",a,b,c);

}

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
楼千海2239
2012-06-13 · TA获得超过1128个赞
知道小有建树答主
回答量:688
采纳率:84%
帮助的人:275万
展开全部
#include "stdio.h"
int main()
{
int a,b,c,temp;
scanf("%d,%d,%d",&a,&b,&c);
if(a>b)
{
temp=a;
a=b;
b=temp;
}
if(b>c)
{
temp=b;
b=c;
c=temp;
}
if(a>b)
{
temp=a;
a=b;
b=temp;
}
printf("%d,%d,%d",a,b,c);
return 0;
}

其实不用指针/用一个临时变量交换更方便
追问
不用指针方法有很多种,,但是这题规定必须指针做。。我为的是错在哪里了
追答
你的错误比较多,首先else后没有大括号,else后的第二个赋值语句必定会执行
另外,判断和赋值比较乱,判断用的是指针,然后给指针赋值,因为有多次判断和赋值,指针和变量已经不是简单的p1=&a;p2=&b;p3=&c;的关系了,除非你用嵌套的if语句来写,当然这样会更麻烦。

如下,不用临时变量,只用指针,相当的烦
#include "stdio.h"
void main()
{
int a,b,c,*p1,*p2,*p3;
scanf("%d,%d,%d",&a,&b,&c);
p1=&a;p2=&b;p3=&c;
{
if(*p1*p3)
{
p3=&a;
p2=&b;
p1=&c;
}
else if (*p2>*p3)
{
p1=&b;
p2=&c;
p3=&a;
}
}
}
printf("%d,%d,%d",*p1,*p2,*p3);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ylf尘风
2013-06-13 · TA获得超过257个赞
知道小有建树答主
回答量:168
采纳率:100%
帮助的人:108万
展开全部

 #include<stdio.h>
void main()
{
int a, b, c, t, *i, *j, *k;
scanf("%d%d%d", &a, &b, &c);
i = &a;
j = &b;
k = &c;
if (*i > *j)
{
t = *j;
*j = *i;
*i = t;
}
if (*i > *k)
{
t = *k;
*k = *i;
*i = t;
}
if (*j > *k)
{
t = *k;
*k = *j;
*j = t;
}
printf("%d,%d,%d", *i, *j, *k);
}


已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sun_siliang
2012-06-13 · TA获得超过2.6万个赞
知道大有可为答主
回答量:9913
采纳率:100%
帮助的人:5561万
展开全部
#include "stdio.h"
void main()
{
int a,b,c,*p1,*p2,*p3;
scanf("%d,%d,%d",&a,&b,&c);
p1=&a;p2=&b;p3=&c;
if(*p1>*p2)
{
int *p=p1;
p1=p2;
p2=p;
}
if(*p2>*p3)
{
int *p=p2;
p2=p3;
p3=p;
}
if(*p1>*p2)
{
int *p=p1;
p1=p2;
p2=p;
}
printf("%
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式