C语言编程实现:利用指针,输入3个整数,按由小到大的顺序输出。

下面是我的代码和结果请问这是为什么怎么解决?求大神解答... 下面是我的代码和结果 请问这是为什么怎么解决?求大神解答 展开
 我来答
问明6E
高粉答主

2019-05-23 · 每个回答都超有意思的
知道答主
回答量:279
采纳率:100%
帮助的人:12.2万
展开全部

写法一、(交换指针指向的地址中存放的数据):

#include<iostream>

using namespace std;

int main()

{

int a,b,c;

int*p1,*p2,*p3;

int temp;

cout<<"输入3个整数:"<<endl;

cin>>a>>b>>c;

p1=&a;

p2=&b;

p3=&c;

if(*p1>*p2)

{

temp=*p1;

*p1=*p2;

*p2=temp;

}

if(*p1>*p3)

{

temp=*p1;

*p1=*p3;

*p3=temp;

}

if(*p2>*p3)

{

temp=*p2;

*p2=*p3;

*p3=temp;

}

cout<<'\n'

<<"按由小到大顺序输出:"<<'\n'

<<a<<'\n'

<<b<<'\n'

<<c<<'\n';

return 0;

}

写法二、(交换指针指向的地址):

#include<iostream>

using namespace std;

int main()

{

int a,b,c;

int*p1,*p2,*p3;

int*temp;

cout<<"输入3个整数:"<<endl;

cin>>a>>b>>c;

p1=&a;

p2=&b;

p3=&c;

if(*p1>*p2)

{

temp=p1;

p1=p2;

p2=temp;

}

if(*p1>*p3)

{

temp=p1;

p1=p3;

p3=temp;

}

if(*p2>*p3)

{

temp=p2;

p2=p3;

p3=temp;

}

cout<<'\n'

<<"按由小到大顺序输出:"<<'\n'

<<*p1<<'\n'

<<*p2<<'\n'

<<*p3<<'\n';

return 0;

}

写法三、用函数指针

#include<stdio.h>

#include<stdlib.h>

int main()

{

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

printf("请输入三个整数:");

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

p1=&a;

p2=&b;

p3=&c;

exchange(p1,p2,p3);

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

return 0;

}

void swap(int*x,int*y)

{

int temp;

if(*x>*y)

{

temp=*x;

*x=*y;

*y=temp;

}

}

void exchange(p1,p2,p3)

{

swap(p1,p2);

swap(p1,p3);

swap(p2,p3);

}

shine1991
科技发烧友

2018-04-14 · 智能家居/数码/手机/智能家电产品都懂点
知道顶级答主
回答量:4.7万
采纳率:82%
帮助的人:2.3亿
展开全部

第一,三个输入的数字用空格或者回车分隔

#include <stdio.h>
int paixu(int a[])
{
int i,j,m;
for(i=0;i<3;i++)
{
for(j=i+1;j<3;j++)
{
if(a[j]<a[i])
{
m=a[i];
a[i]=a[j];
a[j]=m;
}
}
}
}
int main(void)
{
int i,a[3],n;
printf("xxxxxxx");
for(i=0;i<3;i++)
scanf("%d",&a[i]);
paixu(a);
for(i=0;i<3;i++)
printf("%d ",a[i]);
return 0;
}
更多追问追答
追问
要求用指针的方法   你这不是吧
追答
int paixu(int *a)
{
    int i,j,m;
    for(i=0;i<3;i++)
    {
        for(j=i+1;j<3;j++)
        {
            if(*(a+j)<*(a+i))
            {
                m=*(a+i);
                *(a+i)=*(a+j);
                *(a+j)=m;
            }
        }
    }
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
s防风固沙个
2018-04-14 · 超过44用户采纳过TA的回答
知道小有建树答主
回答量:212
采纳率:62%
帮助的人:18.8万
展开全部
int函数得有返回值啊,兄嘚
追问
在函数后加了return 0;还是停止工作
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式