2.22題目

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

如果樣例有不知道多組數據該怎麼進行輸入呢?有可能是4組,也有可能是100組?

這時候我們就可以用以上方法進行輸入,你們在devc++編輯器上運行的時候,輸入完數據後一定要同時按ctrl + z這樣才能表示數據輸入完畢

目前的問題就是這些,從明天開始的輸入全用上面這種模式,先自行嘗試一下

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章