if (a%i==0) /* 如果i是a的因子 */
{n++; /* n加1,表示新找到一个因子 */
s=s-i; /* s减去已找到的因子,s的新值是尚未求出的因子之和 */ switch(n) /* 将找到的因子赋给k1...k9,或k10 */ {case 1:
k1=i; break; /* 找出的笫1个因子赋给k1 */ case 2:
k2=i; break; /* 找出的笫2个因子赋给k2 */ case 3:
k3=i; break; /* 找出的笫3个因子赋给k3 */ case 4:
k4=i; break; /* 找出的笫4个因子赋给k4 */ case 5:
k5=i; break; /* 找出的笫5个因子赋给k5 */ case 6:
k6=i; break; /* 找出的笫6个因子赋给k6 */ case 7:
k7=i; break; /* 找出的笫7个因子赋给k7 */ case 8:
k8=i; break; /* 找出的笫8个因子赋给k8 */ case 9:
k9=i; break; /*找出的笫9个因子赋给k9 */ case 10:
k10=i; break; /* 找出的笫10个因子赋给k10 */ } }
if (s==0) {
检printf(\
if (n>1) printf(\表示a至少有2个因子 */
if (n>2) printf(\表示至少有3个因子,故应再输出一个因子 */ if (n>3) printf(\表示至少有4个因子,故应再输出一个因子 */ if (n>4) printf(\以下类似 */ if (n>5) printf(\if (n>6) printf(\if (n>7) printf(\if (n>8) printf(\if (n>9) printf(\printf(\} }
return 0; } 5-9-2
#include int main() {int m,s,i;
for (m=2;m<1000;m++) {s=0;
for (i=1;i{printf(\for (i=1;iif (m%i==0) printf(\printf(\} }
return 0; } 5-10
#include int main() {
int i,n=20;
double a=2,b=1,s=0,t; for (i=1;i<=n;i++) {
s=s+a/b; t=a, a=a+b, b=t;
}
printf(\return 0; } 5-11
#include int main() {
double sn=100,hn=sn/2; int n;
for (n=2;n<=10;n++) {
sn=sn+2*hn; /*第n次落地时共经过的米数*/ hn=hn/2; /*第n次反跳高度*/ }
printf(\第10次落地时共经过%f米\\n\printf(\第10次反弹%f米\\n\return 0; } 5-12
#include int main() {
int day,x1,x2; day=9; x2=1;
while(day>0)
{x1=(x2+1)*2; /*第1天的桃子数是第2天桃子数加1后的2倍.*/ x2=x1; day--; }
printf(\return 0; } 5-13
#include #include int main() {
float a,x0,x1;
printf(\scanf(\x0=a/2;
x1=(x0+a/x0)/2;
do {x0=x1;
x1=(x0+a/x0)/2;
}while(fabs(x0-x1)>=1e-5);
printf(\return 0; } 5-14
#include #include int main()
{double x1,x0,f,f1; x1=1.5; do {x0=x1;
f=((2*x0-4)*x0+3)*x0-6; f1=(6*x0-8)*x0+3; x1=x0-f/f1;
}while(fabs(x1-x0)>=1e-5);
printf(\return 0; } 5-15
#include #include int main()
{float x0,x1,x2,fx0,fx1,fx2; do
{printf(\scanf(\fx1=x1*((2*x1-4)*x1+3)-6; fx2=x2*((2*x2-4)*x2+3)-6; }while(fx1*fx2>0); do
{x0=(x1+x2)/2;
fx0=x0*((2*x0-4)*x0+3)-6; if ((fx0*fx1)<0) {x2=x0; fx2=fx0; } else {x1=x0; fx1=fx0; }