《演算法競賽入門經典》上機練習——第一章_演算法競賽

來源:互聯網
上載者:User

習題1-1 平均數(average)

    輸入3個整數,輸出它們的平均值,保留3位小數。

#include <stdio.h>int main(){    int a,b,c;    double average;        scanf("%d%d%d",&a,&b,&c);    average = (a+b+c)/3.0;    printf("%.3lf\n",average);        return 0;}

習題1-2 溫度(temperature)

    輸入華氏溫度f,輸出對應的攝氏溫度c,保留3位小數。提示:c=5(f-32)/9。

#include <stdio.h>int main(){    double f,c;        scanf("%lf",&f);    c = 5*(f-32)/9;    printf("%.3lf\n",c);        return 0;}

習題1-3 連續和(sum)

    輸入正整數n,輸出1+2+···+n的值。提示:目標是解決問題,而不是練習編程。

分析:1+2+···+n = (1+n)*n/2

#include <stdio.h>int main(){    int n,sum;        scanf("%d",&n);    sum = (1+n)*n/2;    printf("%d\n",sum);        return 0;}

習題1-4 正弦和餘弦(sincos)

    輸入正整數n(n<360),輸出n度的正弦、餘弦函數值。提示:使用數學函數。

分析:需將角度換算為弧度。角度180度 對應 弧度1pi

#include <stdio.h>#include <math.h>int main(){    double n/*角度*/,       x/*弧度*/;const double pi = 4.0*atan(1.0);        scanf("%lf",&n);    x = n/180*pi;    printf("%lf\n",sin(x));    printf("%lf\n",cos(x));        return 0;}

習題1-5 距離(distance)

    輸入4個浮點數x1,y1,x2,y2,輸出平面座標系統中點(x1,y1)到點(x2,y2)的距離。

分析:平面兩點間距離:d=sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1))

            sqrt()求算術平方根

#include <stdio.h>#include <math.h>int main(){    double x1,y1,x2,y2,d;        scanf("%lf%lf%lf%lf",&x1,&y1,&x2,&y2);    d = sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1));    printf("%lf\n",d);        return 0;}

習題1-6 偶數(odd)

    輸入一個整數,判斷它是否為偶數。如果是,則輸出“yes”,否則輸出“no”。提示:可以用多種方法判斷。

分析:除了%2,今天又學到一種新的方法:if(n&1),與1按位與,結果為1則是奇數,為0是偶數

#include <stdio.h>int main(){    int n;        scanf("%d",&n);    if(n&1) printf("no");/*是奇數*/    else printf("yes");/*是偶數*/         return 0;}


習題1-7 打折(discount)

    一件衣服95元,若消費滿300元,可打八五折。輸入購買衣服件數,輸出需要支付的金額(單位:元),保留兩位小數。

#include <stdio.h>int main(){    int n;    double money;    scanf("%d",&n);money = 95*n;if(money>=300)    money*=0.85;printf("%.2lf\n",money);    return 0;}

習題1-8 絕對值(abs)

    輸入一個浮點數,輸出它的絕對值,保留兩位小數。

#include <stdio.h>int main(){    double n;    scanf("%lf",&n);if(n>0)     printf("%.2lf\n",n);else     printf("%.2lf\n",-n);    return 0;}

習題1-9 三角形(triangle)

    輸入三角形三邊長度值(均為正整數),判斷它是否能為直角三角形的三個邊長。如果可以,則輸出“yes”,如果不能,則輸出“no”。如果根本無法構成三角形,則輸出“not a triangle”。

分析:先判斷能否構成三角形,再進一步判斷能否構成直角三角形。

#include <stdio.h>int main(){    int a,b,c,t;        scanf("%d%d%d",&a,&b,&c);    if(a>c)        {t=a;a=c;c=t;}    if(b>c)        {t=b;b=c;c=t;}/*這2個if語句確保了c是最長的邊*/             if(a+b<=c)        printf("not a triangle\n");    else        if(a*a+b*b == c*c)            printf("yes\n");        else            printf("no\n");        return 0;}

習題1-10 年份(year)

    輸入年份,判斷是否為閏年。如果是,則輸出“yes”,否則輸出“no”。提示:簡單地判斷除以4的餘數是不夠的。

#include <stdio.h>int main(){    int y;        scanf("%d",&y);    if(y%4==0 && y%100!=0 || y%400==0)        printf("yes\n");    else        printf("no\n");        return 0;}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.