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

输入3个整数,按从大到小的次序输出.要求用指针变量来处理3个整数.#include<stdio.h>voidmain(){inti,j,a[3],*p[3],*x;for... 输入3个整数,按从大到小的次序输出.要求用指针变量来处理3个整数.

#include<stdio.h>
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]);
}

帮忙看看那错了!
展开
 我来答
那一点情丝
2012-03-28
知道答主
回答量:56
采纳率:25%
帮助的人:6万
展开全部

我帮你下午写一个吧 很简单的 

#include"stdio.h"

void main()

{

void exchange(int *pt1,int *pt2,int*pt3);

int a,b,c,*p1,*p2,*p3;

printf("input 3 numbers:\n");

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

p1=&a;p2=&b;p3=&c;

exchange(p1,p2,p3);

printf("the result is:%d %d %d\n",*p1,*p2,*p3);

}

void exchange(int *pt1,int *pt2,int *pt3)

{

void swap(int *q1,int *q2);

if(*pt1<*pt2) swap(pt1,pt2);

if(*pt1<*pt3) swap(pt1,pt3);

if(*pt2<*pt3) swap(pt2,pt3);

}

void swap(int *q1,int *q2)

{

int temp;

temp=*q1;

*q1=*q2;

*q2=temp;

运行过了,是正确的 结果:

612wangzhi
2012-03-29
知道答主
回答量:24
采纳率:0%
帮助的人:8.8万
展开全部
你的思路很混乱,而且错的地方很多的。不好改,我给你写个程序吧。
#include <stdio.h>
void swap(int *p1,int *p2)
{
int tmp;
tmp=*p1;
*p1=*p2;
*p2=tmp;
}
void sort (int *p1,int *p2,int *p3)
{
if (*p1>*p2)
swap(p1,p2);
if (*p1>*p3)
swap(p1,p3);
if (*p2>*p3)
swap(p2,p3);
}
int main (int argc,char * argv[])
{
int a,b,c;
int *p1=&a,*p2=&b,*p3=&c;
scanf("%d%d%d",p1,p2,p3);
sort(p1,p2,p3);
printf("%d %d %d\n",*p1,*p2,*p3);
return 0;
}
这个程序我已经试过了 ,没问题的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友5e192c7
2012-03-28 · 超过17用户采纳过TA的回答
知道答主
回答量:93
采纳率:0%
帮助的人:47.3万
展开全部
p[ ]是一个指针数组,里面存的是地址。*p[i]是取出地址里面存的内容,既你输入的整数。第三个for循环比较的时候要用*p[i],因为要比较的是存在这个地址里面的数的大小,而不是比较地址的大小。第三个for循环中还有其他一些错误,详情请看代码。
#include <stdio.h>
#include <stdlib.h>

int 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+1; j<3; j++)
{
if(*p[j]>*p[i])
{
x=p[j];
p[j]=p[i];
p[i]=x;
}
}
}
printf("%d>%d>%d",*p[0],*p[1],*p[2]);

return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
viqjatdw2011
2012-03-28 · 超过38用户采纳过TA的回答
知道小有建树答主
回答量:181
采纳率:0%
帮助的人:81.9万
展开全部
我突然发现。。。这个是08年的题目啊。。。
你就搞个指针 指向数组 然后输入数组
然后就用起泡法 排序 再来个判断语句 决定从小到大还是从大到小
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友ecc7578
2008-09-04 · TA获得超过806个赞
知道小有建树答主
回答量:715
采纳率:0%
帮助的人:690万
展开全部
输出的应该是*p[0],*p[1],*p[3].
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式