函式(下)和字串練習

2021-09-26 06:35:07 字數 4902 閱讀 5302

1、(統計正數和負數的個數然後計算這些數的平均值)編寫乙個程式來讀入不指定個數的整數,然後決定已經讀取的整數中有多少個正數和多少個負數並計算這些輸入值的總和,最終得出平均值,程式以輸入0結束,用浮點數顯示這個平均值

zheng =

0fu =

0he =

0for i in

range

(200):

a =int(

input

("請輸入整數:"))

if a !=0:

if a >0:

zheng +=

1else

: fu +=

1else

:break

he += a

ping = he /

(zheng + fu)

print

("您輸入的正數有%d個,負數有%d個,平均值是%.2f"

%(zheng,fu,ping)

)

請輸入整數:

1請輸入整數:

2請輸入整數:

3請輸入整數:-1

請輸入整數:-2

請輸入整數:

0您輸入的正數有3個,負數有2個,平均值是0.60

2、(財務應用程式:計算未來學費)假設大學今年的學費是10000美元,且以每年5%增長。編寫程式計算十年之後的學費以及從現在開始到十年後大學四年的總學費

money =

10000

si =

0for i in

range(13

):money = money *

0.05

+ money

if i ==9:

print

("十年後的學費是:%d"

%money)

if i >=9:

si += money

print

("十年後大學四年的總學費:%d"

%si)

十年後的學費是:

16288

十年後大學四年的總學費:

70207

3、(找出可被5和6同時整除的數)編寫程式找出在100和1000之間所有被5和6同時整除的數,每行顯示十個數,並被空格隔開

count =

0for i in

range

(100

,1000):

if i %5==

0and i %6==

0:print

(i,end =

" ")

count +=

1if count %

10==0:

print

()

120

150180

210240

270300

330360

390420

450480

510540

570600

630660

690720

750780

810840

870900

930960

990

4、(找出最小的n滿足n²>12000)使用while迴圈找出最小整數n滿足大於12000

(找出最小的n滿足n²>12000)使用while迴圈找出最小整數n滿足大於12000

n =

1while n **

2<

12000

: n +=

1print

(n)n =

1while n **

3<

12000

: n +=

1print

(n-1

)

110

22

5、(演示消除錯誤)當你操作乙個非常大的數和乙個非常小的數時,就會出現消除錯誤。大數可能會抵消比較小的數。例:100000000.0+0.000000001的結果是100000000.0.為了避免消除錯誤並獲取更精確的結果,應該仔細選擇計算的順序。例如:在計算下面數列的過程中,你可以從右向左而不是從左向右計算,這樣將會獲取更精確的結果。

1+1/2+1/3+…+1/n

編寫程式比較從左到右和從右向左計算上面數列和的結果,其中n=50000

a =

0for i in

range(1

,5001):

a +=

1/ i

print

(a)a =

0for i in

range

(5000,0

,-1)

: a +=

1/ i

print

(a)

9.094508852984404

9.09450885298443

6、(數列求和)編寫程式對下面的數列求和:1/3+3/5+5/7+…+95/97+97/99

sum=0

for i in

range(1

,97,2

):j = i +

2sum

+= i / j

print

("數列的和是:%f"

%sum

)

44.144652
7、(計算π)用下面的數列計算

π=4(1-1/3+1/5-1/7+1/9-7/11+…+(-1)^(i+1)/(2i-1))

編寫程式顯示當i=10000、20000、…、100000時π的值

a =

0i =

int(

input()

)for j in

range(1

,i):

a +=4*

((-1

)**(j +1)

/(2* j -1)

)print

(a)

20000

3.1416426560898874

8、(完全數)如果乙個正整數等於除了它本身之外所有正因子的和,那麼這個數被稱為完全數。例如,6是乙個完全數,因為6=3+2+1,下乙個完全28=14+7+4+2+1。注:小於10000的完全數有四個。

for i in

range(1

,10000):

a =0for j in

range(1

,i):

if i % j ==0:

a += j

if a == i:

print

(a,end =

(" "

))

6

28496

8128

9、(數學問題:組合)編寫程式顯示從1到7的整數中選取兩個數的所有可能組合,同時顯示組合的總個數

count =

0for i in

range(1

,8,2

):for j in

range(2

,8):

if i != j :

count +=

1print

(i,j,end =

",")

print

("組合共有%d個數"

%count)

12,

13,1

4,15

,16,

17,3

2,34

,35,

36,3

7,52

,53,

54,5

6,57

,72,

73,7

4,75

,76,

組合共有21個數

10、(統計方面:計算均值和標準差)編寫乙個程式提示使用者輸入10個數字,

然後使用下面的公示顯示均值和標準方差。

mean=∑xi/n=(x1+x2+…+xn)/n deviation=sqrt(∑(mean-xi)²/n)

import math

n =0

a =0

b =[

]c =

0for i in

range(10

):shu =

float

(input

("請輸入10個數字:"))

b.extend(

[shu]

) a += shu

n +=

1mean = a / n

print

("均值:%d"

%mean)

for j in b:

c +=

(mean - j)**2

/ n deviation = math.sqrt(c / n)

print

("標準差:%d"

%deviation)

請輸入10個數字:1

請輸入10個數字:2

請輸入10個數字:3

請輸入10個數字:4

請輸入10個數字:5

請輸入10個數字:6

請輸入10個數字:1

請輸入10個數字:2

請輸入10個數字:3

請輸入10個數字:1

均值:2.8

標準差:0.5253570214625479

字串函式的練習

剛剛學習完字串函式,記錄一下自己的練習題 1.本題要求編寫程式,針對輸入的n個字串,輸出其中最長的字串。include include intmain void printf the longest is s num t return0 輸入樣例 5 liwang zhang jinxiang輸出樣...

字串和字串函式

字元輸入輸出 getchar putchar ch getchar putchar ch 字串函式 字串輸入 建立儲存空間 接受字串輸入首先需要建立乙個空間來存放輸入的字串。char name scanf s name 上述的用法可能會導致程式異常終止。使用字串陣列 可以避免上述問題 char na...

字串和字串函式

1.字串字面量 字串常量 用雙引號括起來的內容稱為字串字面量,也叫字串常量。字串常量屬於靜態儲存類別,這說明如果在函式中使用字串常量,該字串只會被儲存一次,在整個程式的生命期內存在,計時函式被呼叫多次。用雙引號括起來的內容被視為指向該字串儲存位置的指標。hello 中的 hello 類似於乙個陣列名...