#include<cstdio>
int main()
{
char c1[3],t,a,b,c;
scanf("%s",c1);
a=c1[0];
b=c1[1];
c=c1[2];
if(a>b)
{
t=a;
a=b;
b=t;
}
if(a>c)
{
t=a;
a=c;
c=t;
}
if(b>c)
{
t=b;
b=c;
c=t;
}
printf("%c %c %c",a,b,c);
return 0;
}
#include <cstdio>
#include <cmath>
double a,b,c,d;
double ans;
int main()
{
scanf("%lf%lf%lf%lf",&a,&b,&c,&d);
ans = sqrt((a-c)*(a-c) + (b-d)*(b-d));
printf("%.2lf\n",ans);
return 0;
}
以上为两题的较为不错的答案
总结一下你们出现的问题
1:float相关
float由于其在计算机中的储存方式特殊,以后用double代替
2:第一题的输入问题
本体输入只有三个字符,你可以用scanf("%c%c%c",&a,&b,&c);这种方式
要是有一百个字符呢?
解决方法:scanf("%s",c1);c1为字符数组
3:第一题的比较大小问题:
最好的方法就是上面的题解,自己好好体会一下
4:第二题的答案计算问题:
就算是两个负数相乘是不是也是正数?没有必要使用abs函数。
n的m次方的计算不可以用pow函数,直接乘就行了。
5:输入格式
你申请的int变量就要用%d,double变量就用%lf,不要混用,会出错
样例的延申:
有一个同学的写法正是我之后想要告诉你们的:
#include <cstdio>
#include <cmath>
double a,b,c,d;
double ans;
int main()
{
int i;
while(scanf("%lf%lf%lf%lf",&a,&b,&c,&d)!=EOF)
{
ans = sqrt((a-c)*(a-c) + (b-d)*(b-d));
printf("%.2lf\n",ans);
}
return 0;
}