1. 程式人生 > 其它 >C語言探險之路—趣味小集合(1)

C語言探險之路—趣味小集合(1)

技術標籤:C語言基礎學習c語言

C語言探險之路—趣味小集合(1)

  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;
}
  1. 一元二次方程求根

程式設計計算並輸出一元二次方程ax2+bx+c的兩個實根,其中的係數a、b、c的值由使用者輸入,並假設係數a、b、c的值能保證方程有兩個不相等的實根。實根計算公式:
alt
程式設計提示:開平方計算用庫函式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;
}
  1. 逆序數

從鍵盤任意輸入一個 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; 
}
  1. 計算f(x)的值,輸入x,計算並輸出下列分段函式f(x)的值(保留1位小數)。
    alt
#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。