C語言探險之路—趣味小集合(1)
阿新 • • 發佈:2021-01-25
C語言探險之路—趣味小集合(1)
- 數學表示式與庫函式-銀行存款本息計算
【問題描述】
設銀行定期存款的年利率rate為2.25%,已知存款期為n年,存款本金為capital元,試程式設計計算並輸出n年後的本利之和deposit。
程式設計提示:程式設計提示:乘方計算用庫函式pow(x,n)計算xn,需要包含math.h標頭檔案
樣例輸入:依次輸入存款期限、利率、本金
【輸入形式】依次輸入存款期限、利率、本金,其中
存款期限輸入格式:"%d" 存款利率輸入格式:"%lf" 存款本金輸入格式:"%lf"
【輸出形式】實數形式本金和利息之和,按照"%.2f"格式輸出
【樣例輸入】
3
0.0225
10000
【樣例輸出】10690.30
#include<stdio.h> #include<math.h> int main() { int n; double rate,capital, deposit; scanf("%d%lf%lf",&n,&rate,&capital); deposit = capital*pow(1+rate,n); printf("%.2f",deposit); return 0; }
- 一元二次方程求根
程式設計計算並輸出一元二次方程ax2+bx+c的兩個實根,其中的係數a、b、c的值由使用者輸入,並假設係數a、b、c的值能保證方程有兩個不相等的實根。實根計算公式:
程式設計提示:開平方計算用庫函式sqrt(x)計算,需要包含math.h標頭檔案
【輸入資料】方程的係數a、b、c
【輸出格式】方程的兩個根,大根在前,小根在後
【樣例輸入】1 5 6
【樣例輸出】-2.000000 -3.000000
#include<stdio.h> #include<math.h> int main() { float a, b, c, x1, x2; scanf("%f%f%f", &a, &b, &c); x1=(-b+sqrt(b*b-4*a*c))/2/a; x2=(-b-sqrt(b*b-4*a*c))/2/a; printf("%f %f",x1,x2); return 0; }
- 逆序數
從鍵盤任意輸入一個 3 位數,程式設計計算並輸出它的逆序數(忽略整數前的 正負號)。
例如輸入-123,則忽略負號,由 123 分離出百位 1,十位 2,個位 3, 然後計算 3*100+2+10+1=321,輸出 321。
#include<stdio.h>
#include<math.h>
int main()
{
int number,new_number,unit_digit,ten_digit,hundred_digit;
printf("Please input a three digit number\n");
scanf("%d",&number); number=(int)fabs(number);//取絕對值
unit_digit=number%10;//提取個位數字
ten_digit=(number/10)%10;//提取十位數字
hundred_digit=number/100;//提取百位數字
new_number= unit_digit*100+ten_digit*10+hundred_digit;//構造逆序數
printf("逆序數為%d",new_number);
return 0;
}
- 計算f(x)的值,輸入x,計算並輸出下列分段函式f(x)的值(保留1位小數)。
#include<stdio.h>
#include<math.h>
#define EPS 1e-6 //用來表示零
int main()
{
double x,y;
printf("Enter x:");
scanf("%lf", &x);
if(fabs(x)>= EPS)
{
y=1/x;
}
else
{
y=0;
}
printf("f(%.2f) = %.1f\n", x,y);
return 0;
}
解析:
實數在具體的計算機中是以浮點形式儲存的,eps可以限制誤差,從而判斷浮點數是非為0。