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