習題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;}