6.編一個程序,輸入10個整數(shù),統(tǒng)計并輸出其中正數(shù)、負數(shù)和零的個數(shù)。
「解」輸入10個整數(shù),統(tǒng)計其中正數(shù)、負數(shù)和零的個數(shù)。程序引入3個計數(shù)器變量,用于統(tǒng)計大于以小于0和等于0的整數(shù)的個數(shù)。開始時,這3個計數(shù)器都置0,然后用循環(huán)逐一輸入10個整數(shù),并判定當(dāng)前輸入的整數(shù)是大于0,或小于0,或等于0,并按判定結(jié)果累加相應(yīng)計數(shù)器。最后,程序輸出這3個計數(shù)器的值。程序如下:
# include
main()
{ int i,d,n,z,p;/*變量定義*/
n=Z=p=0;
for(i=1;i =10;i++) {
print(“ 輸入第%d個整數(shù)”, i);
scanf(“%d”, d);
if(d 0)n++;
else if(d 0)p++;
else z++;
}
printf(“負數(shù)有%d個,正數(shù)有%d個,零有%d個。\n”,n,p,z);
}
7.編程序,按下列公式計算e的值(精度為1e-6):
e=1+1/1!+1/2!+1/3!+…+1/n!+…
「解」按e的冪級數(shù)展開式計算e的值。這是典型的求級數(shù)和計算問題。通常采用逐項計算,并累計的方法。計算新的項時,可用上一輪循環(huán)計算出的項,這能提高程序的效率。循環(huán)直至當(dāng)前項的值小于精度要求結(jié)束。程序如下:
# include
main()
{ double e,t,i;/*變量定義*/
e=0.0;t=1.0;i=1.0;
while(t =1.0e-6) {
e+=t;
t/= i;
i+= 1.0;
}
printf(“e=%.6f\n”, e);
}
8.編程序,按下列公式計算y的值(精度為1e-6):
y=∑1/r*r+1
「解」按所給公式計算數(shù)列的和。類似上一小題的解,逐項計算并累計。程序如下:
# include
main()
{ double y,r,t;/*變量定義*/
y=0.0;r=1.0;
while((t=1.0/(r*r+1.0)) =1.0e-6) {
y+=t;
r+=1.0;
}
printf(“y=%.6f\n”, y);
}