问一道简单的C语言题

输入三个数,按绝对值从小到大排列,要怎么写?谢谢!... 输入三个数,按绝对值从小到大排列,要怎么写?谢谢! 展开
 我来答
hongyaofu
2015-08-07 · TA获得超过1088个赞
知道大有可为答主
回答量:1227
采纳率:87%
帮助的人:512万
展开全部

int型的三个数:

#include <string.h>
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
    int a,b,c;
    int i;
    printf("请输入三个数值(a,b,c):");
    scanf("%i,%i,%i", &a,&b,&c);
    if (abs(a)>abs(b))
    {
     i=a;a=b;b=i;
}
if(abs(b)>abs(c))
{
i=b;b=c;c=i;
}
    if (abs(a)>abs(b))
    {
     i=a;a=b;b=i;
}
    printf("三个数的顺序是: %i,%i,%i\n", a,b,c);
}

float的三个数:

#include <string.h>
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
    float a,b,c;
    float i;
    printf("请输入三个数值(a,b,c):");
    scanf("%f,%f,%f", &a,&b,&c);
    if (abs(a)>abs(b))
    {
     i=a;a=b;b=i;
}
if(abs(b)>abs(c))
{
i=b;b=c;c=i;
}
    if (abs(a)>abs(b))
    {
     i=a;a=b;b=i;
}
    printf("三个数的顺序是: %.2f,%.2f,%.2f\n", a,b,c);
}
百度网友ae58d71
2015-08-07 · TA获得超过350个赞
知道小有建树答主
回答量:371
采纳率:100%
帮助的人:257万
展开全部
#include<stdio.h>
#include<math.h>
int main()
{
int a,b,c,a1,b1,c1,t;
printf("请输入三个数字:");
scanf("%d%d%d",&a,&b,&c);
a1=abs(a);
b1=abs(b);
c1=abs(c);
if(a1>b1)
{
t=a1;
a1=b1;
b1=t;
}
if(b1>c1)
{
t=b1;
b1=c1;
c1=t;
}
if(a1>c1)
{
t=a1;
a1=c1;
c1=t;
}
printf("按绝对值从小到大排序为:%d %d %d\n",a1,b1,c1);
    return 0;
}

编译通过的哦。

追问
这么写我会,我想知道的是从小到大排是用原来的数字排,比如输入12  -14  13排出的是12,13,-14,请问要怎么写的?
追答
恩,那就在替换的时候把a,b,c也替换了呀
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
濸海月明
2015-08-08 · 超过38用户采纳过TA的回答
知道小有建树答主
回答量:62
采纳率:100%
帮助的人:50.5万
展开全部
#include <stdio.h>
#include <math.h>    //包含 float、double类型取绝对值函数fabs()
int main(){
    float num[3];
    int i = 0,j = 0;
    float temp = 0;
    
    //输入3个数
    printf("输入三个数字,按绝对值大小排序:\n\t请输入第一个数字:");
    scanf("%f",&(num[0]));
    printf("请输入第二个数字:");
    scanf("%f",&(num[1]));
    printf("请输入第三个数字:");
    scanf("%f",&(num[2]));
    
    //排序
    for(i = 0; i < 2; i ++){
        for(j = 0 ; j < 2; j ++){
            if(fabs(num[j + 1]) < fabs(num[j]) ){
                temp = num[j];
                num[j] = num[j+1];
                num[j+1] = temp;
            }
        }
    }
    
    //输出
    for(i = 0; i < 3; i ++){
        printf("%f\n",num[i]);
    }
}

已编译跑过,结果正确。

另外,浮点数比较大小有讲究,请到网上搜“c语言浮点数比较大小”。

推荐你找一本 《数据结构与算法 c语言版》这种书当做兴趣看看。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式