3个回答
展开全部
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);
}
展开全部
#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也替换了呀
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#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语言版》这种书当做兴趣看看。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询