#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;
}